2

Tomcast サーバーにデプロイされる複数の Web アプリケーションがあります。

私の webapp の log4j.properties の 1 つで、次の Socket HUB アペンダーを追加して、ログがそのソケットに送信されるようにしました。

log4j.appender.SOCKET=org.apache.log4j.net.SocketHubAppender 
log4j.appender.SOCKET.port=9999
log4j.appender.SOCKET.locationInfo=true

すべてが正常に展開されます。

私の 2 番目のアプリケーションの log4j.properties にも同じアペンダーがあります。

log4j.appender.SOCKET=org.apache.log4j.net.SocketHubAppender 
log4j.appender.SOCKET.port=9999 
log4j.appender.SOCKET.locationInfo=true

この 2 番目の Web アプリケーションを、最初の Web アプリケーションが既に含まれている tomcat サーバーに追加しようとすると、ログに「Port already in Use」エラーがスローされます。

ただし、2 番目のアプリケーションのポートを 9998 に変更すると、ログにエラーは表示されません。ここで言及されているポートは受信者のポートであるため、複数のアプリケーションが同じ受信者ポートを使用しても問題ありません。

または、Tomcat の log4j.properties でこのアペンダーを構成する必要がありますが、デプロイされるすべてのアプリケーションで構成する必要はありません。

高度な感謝

4

2 に答える 2

8

SocketHubAppenderここで TCP サーバーとして機能し、指定された localhost ポートでリッスンを開始します。ログ ビューアー (Apache Chainsaw、OstrosLogViewer、...) はこのポートに接続し、データを受信/プルします。

SocketAppender一方、TCP クライアントとして機能し、指定されたリモート server:port に接続し、データを送信/プッシュします。

于 2012-11-28T22:29:50.540 に答える
0

SocketHubAppender に設定可能なすべてのプロパティは次のとおりです (Log4J 1.2.x を使用):

  • Port : ハブによって開かれたポート (接続を待機中)
  • LocationInfo : 位置情報を含める
  • BufferSize : バッファするログ イベントの数 (新しいクライアントの場合)
  • アプリケーション : アプリケーションの名前

https://wiki.apache.org/logging-log4j/SocketHubAppender https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/net/SocketHubAppender.html

<appender name="SOCKET" class="org.apache.log4j.net.SocketHubAppender">
    <param name="Port" value="4560" />
    <param name="LocationInfo" value="true" />
    <param name="BufferSize" value="1000" />
    <param name="Application" value="MyAppName" />
</appender>

Log4J 2.x では、SocketHubAppender はもう存在しないことに注意してください...少なくとも今のところ: https://issues.apache.org/jira/browse/LOG4J2-171

于 2017-05-10T10:52:50.447 に答える