2
我有點堅持使用boost日誌實現一個非常簡單的方案。我需要限制整個輪轉日誌的大小。Boost Log中限制輪轉日誌的大小v2
我現在的記錄儀的配置看起來像這樣:
void setup_logging(channel_settings_t const& settings
, std::string const& log_file
, std::string const& log_level
)
{
config_logger_attributes(logging::core::get(), settings, log_level);
using namespace logging::aux::default_attribute_names;
//add logging to file (which implicitly deletes the default console logger)
logging::add_file_log
(
keywords::auto_flush = true,
keywords::open_mode = std::ios::out | std::ios::app,
keywords::file_name = log_file+"_%N.log",
keywords::rotation_size = 50 * 1024, // Just for test limit to 50K
keywords::format = //"%TimeStamp%: [%Channel%] |ThreadId| <%Severity%> %Message%"
expr::format("%1% : [%2%] |%3%| <%4%> %5%")
% expr::attr<boost::posix_time::ptime>(timestamp())
% expr::attr<std::string>(channel())
% expr::attr<attrs::current_thread_id::value_type>(thread_id())
% trivial::severity
% expr::smessage
)->locked_backend()->set_file_collector
(sinks::file::make_collector
(keywords::target = "logs"
, keywords::max_size = 200 * 1024 // just for test limit to 200K
)
)
;
}
不幸的是,我無法找到目標關鍵詞的意思,儘管事實上,這是一個目標目錄。與目標相關的目錄或應該有完整路徑?該目標目錄是否存在?我做了一個測試,旋轉日誌文件只是在200K的限制下增長。
我只想讓我們說3或4最後旋轉的日誌文件,其餘的應該被刪除?我們已經遇到了這種情況,其中記錄器中使用的所有磁盤空間和服務器崩潰:(
如果非常讚賞任何幫助