20

SocketAppender の使用方法に関する回答はありますが (分散システムからログを収集するために必要です)、log4j を初めて使用するので、そのサンプル コードの使用方法がわかりません。

おそらく、次のような log4j-server.properties が必要です。

log4j.appender.SERVER=org.apache.log4j.net.SocketAppender
log4j.appender.SA.Port=4712
log4j.appender.SA.RemoteHost=loghost
log4j.appender.SA.ReconnectionDelay=10000

しかし、サーバーの起動方法(この行の使用方法)はまだわかりません

org.apache.log4j.net.SimpleSocketServer 4712 log4j-server.properties

最も重要なのは、ログをどこで\どのように見ることができますか?

4

2 に答える 2

45

を使用してサーバーを実行できます

java -classpath log4j.jar org.apache.log4j.net.SimpleSocketServer 4712 log4j-server.properties

SimpleSocketServer、リモートによって指定されたポート番号に送信されたロギング イベントを受信し、 で指定した設定に従って、ローカルで生成されたかSocketAppenderのようにログに記録します。ネットワークソケットを介してログイベントをパイプするのではなく、元のプロセスで直接ログを記録する場合と同様に、関連するコンソール/ファイル/ローリングファイルアペンダーを構成し、関連するロガーにアタッチするのはあなた次第です。つまり、現在次のようなローカル ログ ファイルを作成している場合:log4j-server.properties

log4j.rootLogger=DEBUG, file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logfile.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%d] [%t] [%m]%n

次に、送信側がlog4j.properties単に言うように変更します

log4j.rootLogger=DEBUG, server
log4j.appender.server=org.apache.log4j.net.SocketAppender
log4j.appender.server.Port=4712
log4j.appender.server.RemoteHost=loghost
log4j.appender.server.ReconnectionDelay=10000

サーバー側log4j-server.propertiesには、以前は送信側にあった定義が含まれています。

log4j.rootLogger=DEBUG, file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logfile.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%d] [%t] [%m]%n

特に、送信側でレイアウトを指定しても意味がないことに注意してくださいSocketAppender。ネットワーク上を通過するのはロギング イベント オブジェクト全体であり、レイアウトを行うのは受信側です。

于 2012-08-01T12:44:24.490 に答える