我已经实现了一个插件,可以添加有关 pid 的日志信息。
appender.DRFA.layout.pattern = %d{ISO8601} %5p **[%pid]** [%t] %c{2}: %m%n
还有另一个用于 FilePattern 转换的插件,可以在滚动发生时将 pid 添加到文件
appender.DRFA.filePattern = ${sys:some.log.dir}/${sys:some.log.file}.%d{yyyy-MM-dd}.%pid
尝试了解如何进行下一步:
在一天结束时,获取日志文件中具有特定 pid 的所有行,并将它们滚动到具有由模式定义的相同 pid 的文件
appender.DRFA.filePattern = ${sys:some.log.dir}/${sys:some.log.file}.%d{yyyy-MM-dd}.%pid
最佳答案
Log4j2 翻转无法将多个日志文件合并到一个 zip 文件中。翻转可以重命名和/或压缩单个日志文件。您可以做的是将具有相同pid
信息的所有日志文件移动到同一目录:
appender.DRFA.filePattern = ${sys:some.log.dir}.%pid/${sys:some.log.file}.%d{yyyy-MM-dd}
如果您需要将多个文件压缩在一起,或将这些文件一起附加到单个文本文件中,内置翻转目前无法执行此操作。
看看custom delete action可以在翻转时触发。 您也许可以将其扩展到您的想法中。如果您需要 Log4j2 为自定义翻转操作进行 API 更改,请提交 JIRA 票证。
关于java - log4j2 DailyRollingFileAppende 实际日志中基于 pid 的滚动日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45940102/