Как я могу просматривать события журнала удаленно, используя Log4J и Apache Chainsaw? - PullRequest
6 голосов
/ 19 февраля 2010

У меня есть веб-приложение на Java, которое в настоящее время использует Log4J для ведения журнала. Я хотел бы использовать Apache Chainsaw для удаленного просмотра и анализа журналов. До сих пор у меня были проблемы с пониманием того, как настроить клиентскую часть (клиент Chainsaw) и серверную часть (конфигурацию 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 удаленный сервер? Подключается ли удаленный сервер к бензопиле и передает на нее события?

Руководство, ссылки на простые учебные пособия или альтернативные инструменты приветствуются.

1 Ответ

2 голосов
/ 19 февраля 2010

Я думаю, вам нужно добавить свой 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>
...