【发布时间】:2015-10-07 04:39:18
【问题描述】:
我最近尝试通过 Boost 日志向一个小型应用程序添加一些日志记录。但是,由于某种原因,使用日志轮换我无法让它在日志目录中获取正确的计数器。
例如,如果我的 Logs
目录包含文件 Log_000.log
和 Log_001.log
我希望日志记录以 Log_002.log
开头,但它总是从 0 重新开始。
我可能遗漏了一些东西,但如果有人能发现一些东西,我将不胜感激。这是我的启动代码:
void initLogging()
{
boost::log::add_common_attributes();
auto core = boost::log::core::get();
core->add_global_attribute("UTCTimeStamp",boost::log::attributes::utc_clock());
auto x = boost::log::add_file_log(
boost::log::keywords::file_name = "Log_%3N.log",
boost::log::keywords::rotation_size = 2 * 1024, // 2k
boost::log::keywords::target = "Logs",
boost::log::keywords::min_free_space = 30 * 1024 * 1024,
boost::log::keywords::max_size = 20 * 1024, // 20k
boost::log::keywords::time_based_rotation = boost::log::sinks::file::rotation_at_time_point(boost::gregorian::greg_day(31)),
boost::log::keywords::scan_method = boost::log::sinks::file::scan_matching,
boost::log::keywords::format = "%UTCTimeStamp% (%TimeStamp%) [%ThreadID%]: %Message%",
boost::log::keywords::auto_flush = true
);
auto d = x->locked_backend()->scan_for_files();
}
非常感谢
【问题讨论】:
-
我从来没有使用过这个库,所以我不能确定这是正确的,但是看着documentation 让我觉得你需要在
scan_for_files
之前添加类似x->locked_backend()->set_file_collector(boost::log::sinks::file::make_collector(boost::log::keywords::target = "Logs"));
的东西调用。 -
我今天早些时候绝望地尝试过,但它只是给了我相同的结果:(一定缺少一些东西