0
我已经使用boost 1.63实现了一个全局日志记录器。这里是初始化:升压日志 - 处理关机场景
BOOST_LOG_GLOBAL_LOGGER_INIT(my_logger, src::severity_logger_mt<severity_level>)
{
typedef sinks::synchronous_sink<sinks::text_file_backend> file_sink;
boost::shared_ptr<file_sink> sink(new file_sink(
keywords::file_name = "/var/log/testApp/%Y%m%d_%H%M%S_testApp.log",
keywords::rotation_size = 5 * 1024 * 1024,
keywords::auto_flush = true));
sink->locked_backend()->set_file_collector(sinks::file::make_collector(
keywords::target = "/var/log/testApp/oldLogs",
keywords::max_size = 5 * 1024 * 1024 * 2,
keywords::min_free_space = 5 * 1024 * 1024 * 2,
keywords::max_files = 2));
sink->locked_backend()->scan_for_files();
sink->set_formatter(
expr::format("[%1%]<%2%> : %3%") %
expr::attr<boost::posix_time::ptime>("TimeStamp") %
expr::attr<severity_level>("Severity") %
expr::smessage);
logging::core::get()->add_sink(sink);
logging::core::get()->add_global_attribute("TimeStamp", attrs::local_clock());
src::severity_logger_mt<severity_level> slg;
return slg;
}
当一个程序意外地完成(例如须藤杀-9 PID或断电)日志文件没有移动到oldlogs中的目录(也当程序再次运行)和/ var/log/testApp目录可能包含许多日志文件。
是否可以处理这种情况?