Log4j 不创建审计日志文件
Log4j doesn't create audit log file
我想跟踪审计日志到单独的文件audit.log
我对 log4j 进行了以下配置
# Root logger option
log4j.rootLogger=INFO, stdout
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# Audit logs
log4j.appender.A2=org.apache.log4j.FileAppender
log4j.appender.A2.File=/home/michal/audit.log
log4j.appender.A2.Append=true
log4j.appender.A2.encoding=UTF-8
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - AUDIT - %m%n
在我的代码中调用
private static final Logger logger = Logger.getLogger("A2");
logger.info("audit test");
但未创建审核日志文件。当我将 A2
级别设置为 rootLogger 时,文件已创建,但其中充满了来自 stdout
目标的日志。
A2 是一个 appender 而不是 logger。你需要在你的 log4j 配置中添加一行来定义一个 logger 写入你的 appender 然后你可以在你的 java代码。
在您的配置中
log4j.logger.audit=INFO, A2
并在您的 java 代码中
private static final Logger logger = Logger.getLogger("audit");
我想跟踪审计日志到单独的文件audit.log
我对 log4j 进行了以下配置
# Root logger option
log4j.rootLogger=INFO, stdout
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# Audit logs
log4j.appender.A2=org.apache.log4j.FileAppender
log4j.appender.A2.File=/home/michal/audit.log
log4j.appender.A2.Append=true
log4j.appender.A2.encoding=UTF-8
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - AUDIT - %m%n
在我的代码中调用
private static final Logger logger = Logger.getLogger("A2");
logger.info("audit test");
但未创建审核日志文件。当我将 A2
级别设置为 rootLogger 时,文件已创建,但其中充满了来自 stdout
目标的日志。
A2 是一个 appender 而不是 logger。你需要在你的 log4j 配置中添加一行来定义一个 logger 写入你的 appender 然后你可以在你的 java代码。
在您的配置中
log4j.logger.audit=INFO, A2
并在您的 java 代码中
private static final Logger logger = Logger.getLogger("audit");