boost log库 使用九

在实际应用中,发现使用Boost Log未及时将日志写入sign.csv文件。为实现测试时立即写入日志,可以利用Boost Log backend的auto_flush功能,但这可能影响性能。文章展示了如何修改代码,显式创建backend对象并配置sink以实现需求。
摘要由CSDN通过智能技术生成

当在真正的App中使用前文的代码时,即使我等待了超过1小时,我都没有看到sign.csv文件中有日志记录。我需要一个方法在测试的时候立刻写入日志文件。如何做呢?

boost log backend的类提供了一个方法auto_flush, 通过调用它,你可以让boost log没有延迟的立刻写文件。但是这会影响性能。你需要根据你的实际情况做个决定。

我改变了前文中的部分代码。

首先,显式的创建了一个backend对象,然后基于它再创建sink对象

typedef sinks::synchronous_sink<sinks::text_ostream_backend> TextSink;
 
  // init sink1
  boost::shared_ptr<sinks::text_ostream_backend> backend1 = boost::make_shared<sinks::text_ostream_backend>();
  backend1->add_stream(boost::shared_ptr<std::ostream>(new std::ofstream("sign.log")));
  boost::shared_ptr<TextSink> sink1(new TextSink(backend1));
  sink1->set_formatter (
   expr::format("[%1%]<%2%>(%3%): %4%")
   % expr::format_date_time< boost::posix_time::ptime >("TimeStamp", "%Y-%m-%d %H:%M:%S")
   % expr::attr<sign_severity_level>("Severity")
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值