3

webapp ログを local4 レベルで syslog に記録しようとしています。環境: Tomcat6、OpenSolaris、Struts2、log4j。私のlog4j.propertiesの内容は次のとおりです-

log4j.rootLogger=INFO, SYSLOG
log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender
log4j.appender.SYSLOG.syslogHost=localhost
log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.SYSLOG.layout.ConversionPattern=%d [%t] %-5p - %m%n
log4j.appender.SYSLOG.Facility=local4

/etc/syslog.conf を編集し、最後に次の行を追加しました。

local4.notice              /var/log/mylog.log

この後、syslog サービスを再起動しました。シェルから次のコマンドを実行すると、/var/log/mylog.log に正しく記録されます。これは主に、syslog サービスが正しく機能していることを意味します。

logger -i -p local4.notice -t "check  log" "test message"

しかし、webapp からのログが /var/log/mylog.log に記録されない理由がよくわかりません。log4j 構成は SysLogAppender に対して正しいですか?

「DailyRollingFileAppender」などの通常のアペンダーを試すと、ログは正常に機能します..しかし、SyslogAppenderを機能させることができません..

ありがとう!-ケシャフ

4

2 に答える 2

7

Ubuntu 10.04での同様の問題で、SyslogAppenderメッセージを受信するために、/ etc/rsyslog.confの2行のコメントを解除する必要がありました。

# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
于 2010-05-21T17:22:14.857 に答える
2

通常、syslog デーモンがネットワークからのパケットを受け入れるように設定されていないため、syslog への追加は失敗します。「logger -i -p」は、パケットが許可されているかどうかを示していません...

于 2009-08-20T06:45:45.620 に答える