如何编写日志文件,以便可以使用记事本实时读取它以进行C++
How to write log file so that it can be read with notepad in real time for C++
我需要一个记录器来C++。我找到了这篇文章 小型记录器类,这使我找到了这个简单的记录器 http://www.drdobbs.com/cpp/201804215。
它主要使用以下方法来访问日志文件。
FILE* pFile = fopen("application.log", "a");
std::ostringstream os;
os<<"I am a log line."<<std::endl;
fprintf(pFile, "%s", os.str().c_str());
fflush(pFile);
但它并没有像我预期的那样工作。我假设,在记事本中打开日志文件后,每个新的日志行都会立即显示在fprintf和fflush之后。但事实证明,我必须使用记事本关闭并重新打开文件才能看到更新。
那么有没有办法在允许实时读取的C++中写入日志文件,从而使日志文件类似于win32控制台或VS输出窗口?我怀念在 Javascript 中将所有内容转储到控制台.log的日子。:)
谢谢。
这不是你的代码的问题,这是记事本的问题。 记事本不会自动检查已打开文件中的更改。
相反,你应该使用一个工具,例如Notepad++,或者实际上是为程序员设计的大多数编辑器。
如果您已安装 cygwin,您还可以使用tail -f
来监视对日志文件的添加。
在 mjs 接受的答案为我指明了正确的方向后,我在谷歌上搜索了"记事本自动刷新"并找到了这个 https://www.raymond.cc/blog/monitor-log-or-text-file-changes-in-real-time-with-notepad/。
它提供了几个选项来监视Windows中的文本文件更改,包括Notepad++和其他专门用于监视文本文件更改的软件,具有关键字过滤/突出显示和保存/加载监视会话等功能。
如果您遇到与我相同的问题,您可能会发现它很有趣。干杯。
相关文章:
- 理解boost::asio-async_read在无需读取内容时的行为
- 使用新行和不使用新行读取文件
- 读取文件并输入到矢量中
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 无法找到/读取配置文件.conf-FileIOException
- 如何使用Luacneneneba API正确读取字符串和表参数
- C++将文本文件中的数据读取到结构数组中
- 正在将csv文件读取为双精度矢量
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 为什么在读取文件大小时文件IO速度会发生变化
- 如何编写日志文件,以便可以使用记事本实时读取它以进行C++
- 在 c++ 服务器上实时读取输入
- 实时从不断增长的文本文件C 读取
- C++从 CSV 读取的实时数据
- 读取内存值(实时)最佳实践
- 如何将opencv图像读取为咖啡格式以进行实时预测
- 正在读取python中telnet连接的实时输出
- C++ - 持续读取实时日志文件的最新行