2012-08-01 58 views
19

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

たぶん私はそのような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

そして最も重要なもの: どこに\ログを見ることができますか?

+0

これはコマンドライン引数と呼ばれます。 – Woot4Moo

答えて

41

あなたは

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 

特に、のレイアウトを指定する点はありません送信側の- ネットワークを経由するものは、全体的なロギングイベントオブジェクトです。受信側は、レイアウトの実行を担当しています。コマンドプロンプトとサーバーにコマンド以下のサーバ単純型を起動するには

+0

ありがとう、それは動作:)私はまだ1つの質問があります。 [2012-08-01 15:20:39,950] [main] [/127.0.0.1にクライアントに接続] [2012-08-01 15:20:39,950] [main] [Starting新しいソケットノード] [2012-08-01 15:20:39,950] [メイン] [新しいクライアントを受け入れるのを待っています] 'これを記録するのを避けるにはどうすればよいですか? – alicjasalamon

+1

これらは、ソケットサーバー自体によって生成されたメッセージのようです。ロギング設定を少し修正する必要があります。これらの余分なメッセージのレベルによっては、サーバサイドのルートロガーをDEBUGではなくERRORに設定してから、 'log4j.logger.com.example = DEBUG'を追加するか、送信側のロガーに適切なものにログする。 –

+0

Log4J 2のサポートはどうですか? – Donatello

0

が起動し、実行されます:-classpath C

のjava:Users.m2repositorylog4jlog4j1.2.17log4j-1.2.17.jar org.apache。 log4j.net.SimpleSocketServer 4712 log4j-server.properties

お使いのシステムにあるlog4j.jarの正しいパスを指定することを忘れないでください。