4

Log4J Socket Appender を使用してログ ファイルを書き込むためにリモート サーバーに接続したい 私の log.properties ファイルは次のとおりです。

log4j.rootLogger=DEBUG, BLAH

# to connect to the remote server
log4j.appender.BLAH=org.apache.log4j.net.SocketAppender

# set set that layout to be SimpleLayout
log4j.appender.BLAH.layout=org.apache.log4j.SimpleLayout

#log4j.appender.BLAH.File= admin.log

log4j.appender.BLAH.Port= xx
log4j.appender.BLAH.RemoteHost= <remoteIp>

localhost もポート番号 22 と 8080 で接続してみました

接続のどこかを間違えています。次のエラーが表示されます

log4j:ERROR Could not connect to remote log4j server at [localhost]. We will try again later.

または、リモート サーバー マシンにログ ファイルを書き込むための提案があれば教えてください。

4

2 に答える 2

5

特定のポートをリッスンするサーバーが実行されている必要があります。log4j は、ロギングのためにこのサーバーに接続する必要があります。

コマンドプロンプトで次のように入力して、リスナーを開始します

Java org.apache.log4j.net.SimpleSocketServer 4712 PATH_TO_THE_FILE\log4jServer.properties

例えば

java org.apache.log4j.net.SimpleSocketServer 4712 C:\log4j-server.properties

log4j-server.properties には、このようなものが含まれる場合があります。

> log4j-server.properties will contain normal configuration of log4j.
> log4j.rootLogger=debug, 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=%t %-5p %c{2} - %m%n

クライアント側では、log4j 構成は次のようになります。

log4j.rootLogger=DEBUG, BLAH  
# to connect to the remote server 
log4j.appender.BLAH=org.apache.log4j.net.SocketAppender  
# set set that layout to be SimpleLayout 
log4j.appender.BLAH.layout=org.apache.log4j.SimpleLayout  
#log4j.appender.BLAH.File= admin.log  
log4j.appender.BLAH.Port= 4712 
log4j.appender.BLAH.RemoteHost=10.225.226.58

構成に従って、IP とポートを (標準ポートと競合することなく) 置き換えます。これが役立つことを願っています。

于 2012-05-15T11:20:41.530 に答える
3

通常、ポート 22 と 8080 はそれぞれ SSH と HTTP で使用されます。は、独自の TCP ベースのプロトコルを使用しSocketAppenderて と通信することを期待しています。SocketNodeしたがって、選択した別のポートで起動する必要があります。

リモートサーバーにログインしようとするときは、ファイアウォールでそのポートを開く必要があることに注意してください。

于 2012-05-15T09:46:18.877 に答える