boost 记录器不会在午夜旋转

boost logger doesn't rotate at midnight

logging::wsettings settings;
settings["Core"]["Filter"] = L"%Severity% >= " + level;
settings["Core"]["DisableLogging"] = false;
settings["Sinks.File"]["Destination"] = L"TextFile";
settings["Sinks.File"]["FileName"] = fileName;
settings["Sinks.File"]["Format"] = L"%TimeStamp% %Severity(format=\"%-7s\")% - %Message%";
settings["Sinks.File"]["AutoFlush"] = true;
settings["Sinks.File"]["TimeBasedRotation"] = L"00:00:00";
settings["Sinks.File"]["RotationSize"] = 10 * 1024 * 1024;
settings["Sinks.File"]["Target"] = filePath;
settings["Sinks.File"]["ScanForFiles"] = L"All";
settings["Sinks.File"]["Append"] = true;

auto previousLocale = std::locale::global(boost::locale::generator()(Constants::LOCALE));
logging::init_from_settings(settings);
logging::add_common_attributes();

我可以在同一个日志文件中看到不同日期的日志'App_2017-05-31.0.log'

2017-05-31 20:07:29.115231 info    -
2017-05-31 20:07:29.115231 info    -  
2017-06-01 01:38:45.139742 error   -  
2017-06-01 03:01:42.303604 error   -  
2017-06-01 19:56:59.995196 info    -  
2017-06-01 19:57:00.385923 info    -  
2017-06-02 01:37:05.281702 error   -  
2017-06-02 02:52:08.488442 error   - 

你知道如何正确配置记录器吗,这样它就可以在午夜轮换日志文件,并且不会在同一个日志文件中有不同日期的日志。

没有TimeBasedRotation参数。您可以通过将 RotationInterval 设置为旋转之间的秒数,或将 RotationTimePoint 设置为旋转发生的时间点来设置周期性旋转。参数记录 here.