设置为text_file_backend且设置为collector时,是在keywords::target目录中创建日志文件,还是collector将旧的日志文件移动到该目录中?

如果collector移动它们,collector什么时候做,在关闭旧日志文件并创建新日志文件之后立即执行?

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

最佳答案

该行为在here中有详细记录。

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

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

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

可以将target参数中的存储目录指定为与写入原始文件的目录相同(file_name参数中的目录)。在这种情况下,某些限制的可靠性可能不太可靠(例如,文件总大小将不包括当前正在写入的文件,因此较旧的文件将仅在旋转时才被删除),但除此以外,其他内容仍应按所述方式工作。

关于c++ - boost:text_file_backend file_name和收集器目标,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36263665/

10-11 08:31