【问题标题】:Using RollingFileAppender ,DailyRollingFileAppender,ConsoleAppender in log4j. Not working在 log4j 中使用 RollingFileAppender、DailyRollingFileAppender、ConsoleAppender。不工作
【发布时间】:2012-09-07 10:34:12
【问题描述】:

我的要求是将消息记录到 3 个单独的日志文件中。

我在 JBOSS 服务器中使用了 3 个附加程序。

其中三个需要以如下方式工作 1.RollingFileAppender、consoleAppender 适用于 'INFO' 和 'ERROR' 模式。 2.DailyRollingFileAppender 用于 'ERROR' 模式和特定类别。

我已经尝试了很多组合,例如更改优先级值和类别,但到目前为止我还没有发现所有三个同时工作的方法。 fileAppender 和 ConsoleAppender 都可以工作(同时记录 ERRROR 和 INFO),而 DailyRollingFileAppender 不工作,或者 DailyRollingFileAppender 工作,但其他两个只记录 ERRORS 而不是 INFO。

请告诉我一个方法,让他们三个工作。

下面提到的是我正在使用的log4j.xml。

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

<!-- ===================================================================== -->
<!--                                                                       -->
<!--  Log4j Configuration                                                  -->
<!--                                                                       -->
<!-- ===================================================================== -->

<!--  -->

<!--
   | For more configuration infromation and examples see the Jakarta Log4j
   | owebsite: http://jakarta.apache.org/log4j
 -->

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">

  <!-- file appender -->
  <appender name="fileAppender" class="org.apache.log4j.RollingFileAppender">
    <param name="file" value="C:/logs/mdmWSServer.log" /> 
    <param name="MaxBackupIndex" value="5" />
    <param name="MaxFileSize" value="5MB" />
    <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="[%d{ISO8601}] [%t] [%-5p][ %c:] %m%n"/>
    </layout>
  </appender> 

     <appender name="dailyFileAppender" class="org.apache.log4j.DailyRollingFileAppender">
      <param name="file" value="C:/logs/dailyApp.log"/>
    <param name="MaxBackupIndex" value="5" />
    <param name="MaxFileSize" value="5MB" />
     <param name="DatePattern" value="'.'yyyy-MM-dd-HH" />
    <layout class="org.apache.log4j.PatternLayout">       
        <param name="ConversionPattern" value="[%d{ISO8601}] [%t] [%-5p][%c:] %m%n"/>
    </layout>
  </appender> 

  <appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="[%d{ISO8601}] [%t] %m%n"/>
    </layout>
  </appender> 

   <category name="com">
      <priority value="INFO"/>
      <appender-ref ref="fileAppender"/>
      <appender-ref ref="consoleAppender"/>
  </category> 
    <category name="com.gsk">    
    <priority value="ERROR"/>
      <appender-ref ref="dailyFileAppender"/>
  </category>
  <category name="org.apache">
      <priority value="INFO"/>
      <appender-ref ref="fileAppender"/>
  </category>

  <root>
    <priority value="DEBUG"/>
    <appender-ref ref="fileAppender"/>
    <appender-ref ref="consoleAppender"/>
  </root>
</log4j:configuration>

【问题讨论】:

    标签: log4j


    【解决方案1】:

    您可以通过使用filter class 指定您要记录的级别来限制附加程序仅记录某个级别。请看下面的示例代码

        <appender name="TRACE" class="org.apache.log4j.ConsoleAppender">
                <layout class="org.apache.log4j.PatternLayout">
                        <param name="ConversionPattern" value="[%t] %-5p %c - %m%n" />
                </layout>
                <filter class="org.apache.log4j.varia.LevelRangeFilter">
                        <param name="levelMin" value="DEBUG" />
                        <param name="levelMax" value="DEBUG" />
                </filter>
        </appender>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-22
      • 1970-01-01
      • 1970-01-01
      • 2014-04-16
      • 1970-01-01
      相关资源
      最近更新 更多