将tomcat日志记录到rsyslog

时间:2014-10-22 21:10:45

标签: java tomcat log4j log4j2 rsyslog

我有一个使用tomcat7运行的java Web应用程序和使用log4j运行的日志。我想将我的日志发送到rsyslog。

我在log4j.xml文件中使用了appeneder。

<appender name="syslog" class="org.apache.log4j.net.SyslogAppender">
          <param name="Facility" value="USER"/>
          <param name="SyslogHost" value="localhost"/>
      <param name="Threshold" value="WARN"/>
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d{MMM dd HH:mm:ss} MYAPP: %-5p %m%n"/>
 </layout>
</appender>

但是我仍然没有看到我在rsyslog中的java应用程序中实现的日志。我可以在catalina.out中看到它们,但不能在rsyslog上看到它们。

我是否必须为rsyslog配置定义新规则?

提前致谢。

更新了log4j.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true"
 xmlns:log4j='http://jakarta.apache.org/log4j/'>


<appender name="System.out" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
    <param name="Target" value="System.out" />
    <param name="ConversionPattern" 
      value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
    </layout>
</appender>

<appender name="SYSLOG" class="org.apache.log4j.net.SyslogAppender">
    <param name="SyslogHost" value="localhost"/>
    <param name="Facility" value="LOCAL1"/>
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" 
      value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
    </layout>
</appender>

<!-- for package specific --> 
<!-- <category name ="my.package" /> -->
<logger name ="Logger">
        <level value ="debug" />
</logger>       

<!-- root logger --> 
<root>
     <level value="info"/>
      <appender-ref ref="SYSLOG"/>
</root>

0 个答案:

没有答案