我正在尝试使用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/