我正在尝试使用Boost.Log(v1.55.0)设置日志记录,但似乎找不到在后端设置文件收集器的方法,因此它仅保留最后20条日志。

namespace sinks     = boost::log::sinks;
namespace keywords  = boost::log::keywords;

typedef sinks::text_file_backend            TextFileBackend;
typedef boost::shared_ptr<TextFileBackend>  TextFileBackendPtr;

TextFileBackendPtr pBackend =
  boost::make_shared<TextFileBackend>
  (
    keywords::file_name = "BoostLogTest_%Y%m%d.log",
    keywords::auto_flush = true
  );

// Set up where the rotated files will be stored
pBackend->set_file_collector
(
  sinks::file::make_collector
  (
    keywords::target = "..\\Logs"
  )
);

在对接收器::: file::make_collector的调用中,我找到了许多关键字,例如max_size和min_free_space,但这两个关键字都不是我想要的。我只想要max_files之类的东西,这样我就可以告诉它仅保留最后20条日志,而不管它们占用了多少磁盘空间。我唯一能找到的类似引用就是打开的这张票:https://svn.boost.org/trac/boost/ticket/8746

似乎也没有可供使用的关键字的文档列表。我发现的所有内容均来自网上的示例。

最佳答案

根据make_collector的文档(取自text_file_backend.hpp):



因此,boost::log当前不支持根据其数量收集旧日志文件。

关于c++ - 如何设置boost.log以限制日志文件的数量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21288016/

10-11 22:42
查看更多