首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Boost日志v2中旋转日志的限制大小

Boost日志v2中旋转日志的限制大小
EN

Stack Overflow用户
提问于 2014-01-13 12:15:18
回答 1查看 2.1K关注 0票数 2

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

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

代码语言:javascript
复制
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
       )
     )
  ;
}

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

我只想有3或4个最后旋转的日志文件,其余的应该删除吗?我们已经遇到这样的情况:记录器使用所有磁盘空间,服务器崩溃:

任何帮助,如果非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-13 12:29:22

好吧,发现了:

代码语言:javascript
复制
keywords::target

是存储旋转日志的完全限定目录路径,因此它必须类似于:

代码语言:javascript
复制
/var/log/dir-to-app

比预期的效果要好。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21091049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档