gpt4 book ai didi

c++ - 限制 Boost Log v2 中旋转日志的大小

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:46:45 25 4
gpt4 key购买 nike

我有点难以用 boost log 实现一个非常简单的场景。我需要限制整个旋转日志的大小。

我当前的记录器配置如下所示:

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
)
)
;
}

不幸的是,我找不到 target 关键字的含义,尽管它是一个目标目录。与smth相关的目标目录还是应该有完整路径?这个目标目录应该存在吗?我做了一个测试,旋转日志文件刚刚超过 200K 的限制。

我只想说 3 或 4 个最后轮换的日志文件,其余的应该删除吗?我们已经遇到过这种情况,记录器用完了所有磁盘空间,服务器崩溃了:(

非常感谢任何帮助!

最佳答案

好的,发现了:

keywords::target

是存储旋转日志的完全限定目录路径,因此它必须像这样:

/var/log/dir-to-app

比预期的限制更有效。

关于c++ - 限制 Boost Log v2 中旋转日志的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21091049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com