0

我有一个应用程序需要将“应用程序日志消息”记录到附加程序并将“安全日志消息”记录到另一个附加程序(安全日志消息不能出现在应用程序日志中)。我正在考虑像这样设置我的记录器:

Logger appLogger = Logger.getLogger("app." + myClassName);
Logger securityLogger = Logger.getLogger("security." + myClassName);

并像这样设置我的 log4j 配置:

log4j.logger.app = DEBUG, applicationLogAppender
log4j.additivity.app = false 

log4j.logger.security = DEBUG, securityLogAppender
log4j.additivity.security = false 

配置 log4j 的最佳方法是什么?我相信我的解决方案会起作用,并且只要开发人员记得在包/类名称前加上“app”前缀,他们仍然能够启用和禁用特定包/类的日志记录。或“安全。”,但我想知道是否有更好的方法来做到这一点。

注意:该解决方案需要适用于 log4j 和 log4cxx。

4

1 回答 1

0

两年前,我被赋予了完全相同的任务,而我正是提出了这个建议,只是我们的记录器前缀被称为“admin”和“debug”。你/我的建议有点创建两个独立的顶级记录器,就在根记录器的下方。

我认为 log4j/cxx 不允许不配置内置的根记录器。为了阻止它从不遵循您的命名策略的记录器中记录 thrash,我将其日志级别设置为“关闭”。

于 2011-09-09T20:30:22.083 回答