2、调整目录结构,将过期的文档都放到archived_docs文件夹中留档; Signed-off-by: waiwaylee <waiwaylee@foxmail.com>
42 lines
1.4 KiB
Markdown
42 lines
1.4 KiB
Markdown
# 雷达数据处理项目修改说明
|
|
|
|
## 概述
|
|
|
|
增加日志文件输出功能,具体需求如下:
|
|
- 将标准输出std::cout重定向到日志文件,考虑使用 rdbuf() 方法,见[参考1](#参考1)
|
|
- 在parameters.h中添加一个日志输出开关的宏定义,开关关闭时,不重定向输出到文件
|
|
- 日志文件输出路径为“.\\rdp_logs\\”,日志文件名按当前日期+时间命名
|
|
- 增加宏定义,在输出日志时添加时间戳、代码文件、代码行数等关键信息再输出到标准输出
|
|
|
|
## 参考
|
|
|
|
### 参考1
|
|
使用 rdbuf() 方法重定向标准输出,更符合C++的流式风格,通过替换 std::cout 的底层流缓冲区(streambuf),将其指向一个文件输出流(std::ofstream)。
|
|
|
|
```cpp
|
|
#include <iostream>
|
|
#include <fstream>
|
|
|
|
int main() {
|
|
std::ofstream file("output.txt");
|
|
if (!file.is_open()) {
|
|
return 1;
|
|
}
|
|
|
|
// 保存原始的 cout 缓冲区,以便之后恢复
|
|
auto original_buf = std::cout.rdbuf();
|
|
|
|
// 将 cout 的缓冲区替换为 file 的缓冲区
|
|
std::cout.rdbuf(file.rdbuf());
|
|
|
|
// 此后的输出都会写入文件
|
|
std::cout << "这条信息会写入文件。" << std::endl;
|
|
|
|
// 恢复 cout 的原始缓冲区,让输出回到控制台
|
|
std::cout.rdbuf(original_buf);
|
|
// file 对象会在析构时自动关闭
|
|
|
|
std::cout << "这条信息会回到控制台。" << std::endl;
|
|
return 0;
|
|
}
|
|
``` |