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 配置来实现这个要求。
- 我道歉。但为什么?!!?!?!??!这只是浪费空间......
-
为什么不尝试将 trx_log.2014-09-22-12-42 附加到您的类的日志语句的简单方法。如果您在 prj 中从头开始实现 logger,这很好,但在其他情况下,您可以检查 appender 的模式布局,您可以在其中配置 ConversionPattern
-
是的,我知道附加文件名是浪费时间。但这是我必须打印的 CDR 日志的要求:)
我不知道。
但解决方案确实存在:编写您自己的 DailyRollingFileAppender.
自定义扩展
请注意,尽管文件名仅对您的自定义附加程序可用:如果您想在另一个附加程序中使用此类信息(我能想到的唯一用例可能有任何用处),那么您需要一个更复杂的使用共享数据存储(共享内存、文件系统、数据库等)的解决方案,最简单的解决方案是您刚刚制作的附加程序的静态成员。在这种情况下,还需要扩展其他附加程序(例如控制台),以便将新信息附加到日志语句中。
-
我也在考虑扩展 RollingFileAppender 并实现自定义。只是想通过一些配置检查是否有另一种方法。
使用这个方法 logger.getName()
logger.log(Level.SEVERE,"Exception in" e.getMessage() logger.getName());
- 这将打印 FQN 类或用于命名当前记录器的任何其他内容,而不是将写入日志条目的文件名,因为该信息对记录器来说是模糊的,并且仅在附加程序中可用。