0

監査ログを別のファイルに追跡したい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");

ただし、監査ログファイルは作成されません。rootLoggerにA2レベルを設定すると、ファイルは作成されますが、stdoutターゲットからのログでいっぱいです。

4

1 に答える 1

2

A2 はロガーではなくアペンダーです。アペンダーに書き込むロガーを定義するには、log4j 構成に行を追加する必要があります。これにより、Java コードでそれに書き込むことができます。

あなたの設定で

log4j.logger.audit=INFO, A2

そしてあなたのJavaコードで

private static final Logger logger = Logger.getLogger("audit");
于 2015-04-12T02:09:47.497 に答える