关于java:在Log4j的日志条目中包含日志文件名

Including log file name in log entry in Log4j

我需要在日志条目本身中包含日志文件的名称。

例如说日志文件的最终名称类似于 trx_log.2014-09-22-12-42 我正在打印的日志条目应该具有相同的名称。以下是示例日志条目。

1
123456|test value|xyz|trx_log.2014-09-22-12-42

我目前正在使用 Log4j DailyRollingFileAppender 打印日志。有没有一种方法可以让我使用一些 log4j/logback 配置来实现这个要求。


我不知道。

但解决方案确实存在:编写您自己的 DailyRollingFileAppender.

自定义扩展

请注意,尽管文件名仅对您的自定义附加程序可用:如果您想在另一个附加程序中使用此类信息(我能想到的唯一用例可能有任何用处),那么您需要一个更复杂的使用共享数据存储(共享内存、文件系统、数据库等)的解决方案,最简单的解决方案是您刚刚制作的附加程序的静态成员。在这种情况下,还需要扩展其他附加程序(例如控制台),以便将新信息附加到日志语句中。


使用这个方法 logger.getName()

logger.log(Level.SEVERE,"Exception in" e.getMessage() logger.getName());