0
Logger alog = Logger.getLogger("auditLogger");


alog.debug("to test audit logger in main screen");

它正在显示错误消息,例如

log4j:ERROR Could not find value for key log4j.appender.debug

SEVERE:   log4j:ERROR Could not instantiate appender named "debug".

SEVERE:   log4j:ERROR Could not find value for key log4j.appender.debug

SEVERE:   log4j:ERROR Could not instantiate appender named "debug".

log4j.properties

log4j.appender.Customer1audit=org.apache.log4j.RollingFileAppender
log4j.appender.Customer1audit.File=C:\\OpsConsole\\21-05-2013\\IOpsConsole\\logs\\Cus‌​tomer1audit.log
log4j.appender.Customer1audit.MaxFileSize=100KB
log4j.appender.Customer1audit.MaxBackupIndex=1
log4j.appender.Customer1audit.layout=org.apache.log4j.PatternLayout
log4j.logger.‌​customer1auditLogger=info,debug,Customer1audit
4

1 回答 1

1

log4j.properties记录器行的格式是

log4j.logger.loggername=LEVEL,appender1,appender2,...

一级,后跟零个或多个附加程序名称)所以这一行

log4j.logger.‌​customer1auditLogger=info,debug,Customer1audit

正在配置一个名为“customer1auditLogger”的记录器以在“info”级别记录并将其消息发送到名为“debug”和“Customer1audit”的附加程序。错误消息告诉您尚未定义名为“debug”的附加程序。

您需要了解的是,您为记录器指定的日志级别是最低的——它将记录此指定级别或任何更高级别的所有消息。因此,您只需将级别设置为调试,您将自动获得信息(以及警告、错误和致命)消息。

log4j.logger.‌​customer1auditLogger=DEBUG,Customer1audit

如果您还有其他附加到根记录器的附加程序,那么您可能还需要设置

log4j.additivity.customer1auditLogger=false

防止customer1auditLogger消息进入继承的附加程序以及特定的Customer1audit附加程序。

您还需要确保登录到正确的记录器。您的示例属性文件配置了一个名为“customer1auditLogger”的记录器,但您的 Java 代码确实如此Logger.getLogger("auditLogger")- 您需要更改其中的一个或其他,以便它们都匹配。

于 2013-09-17T10:30:25.093 回答