相关疑难解决方法(0)

如何手动冲洗升压日志?

我正在使用Boost.Log中的boost 1.54.0来查看它是否适用于我的应用程序.一般来说,我没有缓冲问题,所以我不打算打开auto_flush或其他任何东西......但是我注意到在我调用之前记录的消息fork()是重复的,我想知道它是否是因为它们是缓冲的,所以在复制过程映像时缓冲区会被复制,然后两个进程最终将它们的缓冲区副本写入日志文件......

所以基本上,我只想在我打电话之前在日志上做一次手动刷新,fork()以确保没有消息仍然在内存中.换句话说,我正在寻找一个类似于fflush(),.flush(),<< flush等我可以在升压日志使用.

我确实尝试使用<< flush日志,但我仍然得到重复的消息,所以我不是100%确定它是否正在刷新并且重复是由其他一些问题引起的,或者它是否以某种方式默默地忽略了<< flush...

编辑:

我环顾四周,发现升压日志不是叉安全的.所以我应该补充一点,我不是想在父进程和子进程中使用相同的日志.我有两个分叉场景 - 在一个,父母立即终止和孩子contineus(这应该是安全的),而在另一个,孩子应该打开自己的单独的日志文件,所以这应该是安全的...但我需要弄清楚如何关闭日志文件接收器,然后打开一个新文件(在不同的文件上).我想关闭水槽也可能是一种强制冲洗的方法......?

c++ boost flush boost-logging boost-log

4
推荐指数
2
解决办法
6776
查看次数

标签 统计

boost ×1

boost-log ×1

boost-logging ×1

c++ ×1

flush ×1