Boost.Log:文件轮换的自定义操作

Boost.Log: custom action on rotation of files

我们的应用程序使用 Boost.Log (1.63),并且运行良好。 我们正在使用 rotation/archiving 功能和带有递增数字的文件名。

现在我们要查看错误日志文件。

我们组织使用的监控软件需要绝对文件名,因此带有递增数字后缀的文件名将不起作用。

据我了解Boost.Log不能配置实际的日志文件总是有一个固定的文件名,只有归档文件有后缀。这是正确的吗?

我们的另一个想法是在每次文件轮换时创建指向实际日志文件的符号链接。 是否可以为每个旋转事件添加自定义操作?

As far as I understand Boost.Log cannot be configured that the actual log file always has a fixed file name and only the archived files have suffixes. Is this correct?

是的,文件名是在第一次打开文件进行写入时由接收器后端生成的。旋转文件时,将保留该文件名。

Is there a possibility to add an custom action to each rotation event?

有文件打开和关闭handlers。这些回调接收文件流,而不是文件名。但是您可以通过调用 get_current_file_name.

从接收器后端获取当前文件名

作为一个想法,您可能想要创建一个自定义接收器来监视日志中的错误并将其添加到核心,就像文件接收器一样。如果您将过滤器设置为与文件接收器中的过滤器相同,仅使用仅通过错误日志记录的严重性检查,则该监视器接收器将接收到也由文件接收器记录的错误。 here.

描述了创建自定义接收器的准则