c++ - Boost.Log - 一个日志文件的多个进程?

标签 c++ logging boost

通读the doc对于 Boost.Log,它解释了如何从一个应用程序很好地“扇出”到多个文件/接收器,以及如何让多个线程一起工作以记录到一个地方,但是是否有关于如何获得多个进程日志记录的文档到单个日志文件?

我想象的是每个进程都会记录到它自己的“私有(private)”日志文件,但除此之外,任何超过特定严重性的消息也会记录到“公共(public)”日志文件。这可能与 Boost.Log 相关吗?是否有一些接收器配置可以简化此操作?

我知道我可能会遇到 FAQ here 中描述的相同“时间戳乱序”问题,但没关系,只要时间戳正确,我就可以使用它。这一切都在一台机器上进行,因此也没有远程文件系统问题。

最佳答案

我的期望是直接写入日志文件的 Boost.Log 后端将在写入日志条目之间保持这些文件打开。 这将导致从多个进程使用相同的日志文件时出现问题,因为文件系统通常不允许多个进程写入一个文件。

有一些 Boost.Log 后端可用于将所有日志记录集中在一个地方。 这些是 syslogWindows eventlog后端。其中,系统日志后端可能是最容易使用的。

关于c++ - Boost.Log - 一个日志文件的多个进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13255785/

相关文章:

c++ - 动态数组宽度id?

java - 使用 log4j2 实现缓冲 IO 的方法

azure - 使用azure databricks读取azure databricks日志json文件

c++ - 如何使 boost::serialization 与 std::shared_ptr 一起工作?

c++ - 由 const 引用传递的参数的可变左值引用

c++ - 重新组织 vector 的内容

python 日志记录 : logger setLevel() is not enforced?

c++ - boost 文件系统。 is_directory 从不工作

c++ - boost::type_traits::conditional 中类型特征的编译错误

c++ - 在 C++ fstream 中更新文件末尾