6

我有一个当前使用Log4J进行日志记录的 Java Web 应用程序。我想使用Apache Chainsaw远程查看和解析日志。到目前为止,我一直无法理解如何设置客户端(Chainsaw 客户端)和服务器端(我的 web 应用程序中的 log4j 配置)以成功启用远程日志记录。

这是我到目前为止所尝试的。

服务器端 log4j 配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true">

   <appender name="myRFA" class="org.apache.log4j.RollingFileAppender">
      <param name="File" value="/logs}/my.log"/>
      <param name="Append" value="false" />
      <param name="MaxFileSize" value="10MB"/>
      <param name="MaxBackupIndex" value="10"/>
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern"
            value="%d{ISO8601} %p - [%X{LoggingId}] - %t - %c - %m%n"/>
      </layout>
   </appender>

   <appender name="SOCKET" class="org.apache.log4j.net.SocketAppender">
      <param name="Port" value="4445"/>
      <param name="RemoteHost" value="localhost"/>
      <param name="ReconnectionDelay" value="60000"/>
      <param name="Threshold" value="DEBUG"/>
   </appender>

   <logger name="com" additivity="false">
      <level value="warn"/>
      <appender-ref ref="myRFA"/>
   </logger>

   <logger name="org" additivity="false">
      <level value="warn"/>
      <appender-ref ref="myRFA"/>
   </logger>

</log4j:configuration>

客户端电锯配置

我创建了一个具有以下属性的新接收器

name=SOCKET
port=4445

我承认我真的不明白这一切应该如何运作。Chainsaw 是否正在轮询远程服务器?远程服务器是否连接到 Chainsaw 并向其推送事件?

欢迎提供指导、简单教程的链接或替代工具。

4

1 回答 1

2

我认为您需要将 SOCKET appender 添加到每个记录器:

   <logger name="com" additivity="false">
      <level value="warn"/>
      <appender-ref ref="myRFA"/>
      <appender-ref ref="SOCKET"/>
   </logger>

   <logger name="org" additivity="false">
      <level value="warn"/>
      <appender-ref ref="myRFA"/>
      <appender-ref ref="SOCKET"/>
   </logger>
于 2010-02-19T19:50:59.607 回答