boost:text_file_backend file_name和收集器目标

时间:2016-03-28 13:45:44

标签: c++ logging boost boost-log log-rotation

设置text_file_backend并设置collector时,是keywords::target目录中创建的日志文件还是collector将旧日志文件移到那里?

如果collector移动它们,collector何时移动它们,关闭旧日志文件后立即创建新文件还是在其他时刻?

同样,如果collector在某个时刻移动它们,则新的日志文件(或多个文件)位于一个位置,旧的日志文件位于另一个位置。假设我希望collector删除非常旧的文件,是否有办法将日志文件保留在创建它们的同一位置但删除非常旧的文件?

1 个答案:

答案 0 :(得分:2)

行为记录良好here

实质上,接收器会写入一个日志文件,该名称在file_name命名参数中指定。如果此参数是字符串模板,则每次打开新文件时都会重新生成文件名。

在某些情况下,接收器可能会旋转文件。这意味着当前文件已关闭并传递给收集器(如果已设置)。然后打开一个新文件。

收集器执行文件管理。传递新文件后,它可以对存储中的旧文件和文件系统执行限制检查 - 您在target命名参数中提供的目录。此时,旧文件可能会从存储中删除,以便达到限制并能够将新文件放在那里。

可以将target参数中的存储目录指定为与编写原始文件的目录(file_name参数中的目录)相同。在这种情况下,可能不太可靠地维护某些限制(例如,总文件大小将不包括当前正在写入的文件,因此旧文件仍将仅在旋转时被删除),但除此之外它仍应如所描述的那样工作。 / p>