首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在log4j中使用RollingFileAppender、DailyRollingFileAppender、ConsoleAppender。不工作

在log4j中使用RollingFileAppender、DailyRollingFileAppender、ConsoleAppender。不工作
EN

Stack Overflow用户
提问于 2012-09-07 18:34:13
回答 1查看 13.4K关注 0票数 3

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

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

其中三个需要以这种方式工作,例如1.RollingFileAppender,consoleAppender工作于'INFO‘和'ERROR’模式。2.DailyRollingFileAppender,用于“错误”模式,并且仅用于特定类别。

我尝试了很多组合,比如更改优先级值和类别,但到目前为止,我还没有找到一种同时使用这三种方法的方法。fileAppender和ConsoleAppender都可以工作(记录错误和信息),而DailyRollingFileAppender不能,或者DailyRollingFileAppender可以,但另外两个只记录错误而不记录信息。

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

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

代码语言:javascript
复制
<?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>
EN

回答 1

Stack Overflow用户

发布于 2013-02-07 13:27:13

通过使用指定要记录的级别的filter class,可以将附加器限制为仅记录某个级别。请参阅下面的示例代码

代码语言:javascript
复制
    <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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12316393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档