如何让log4j只记录我的公司类

时间:2012-08-16 16:58:32

标签: java spring log4j

下面是我们公司正在使用的log4j.xml文件的代码。我们一直在尝试将其更改为仅记录来自org.xxxx中的类的输出。有人可以让我知道是否可以这样做以及如何做到这一点

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

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
        </layout>
    </appender>


    <appender name="logfile" class="org.apache.log4j.FileAppender">
        <param name="File" value="logs/disater_relief.log" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
        </layout>
    </appender>


    <appender name="rollinglogfile" class="org.apache.log4j.RollingFileAppender">
        <param name="file" value="logs/ennrollment.log" />
        <param name="immediateFlush" value="true" />
        <param name="append" value="true" />
        <param name="maxFileSize" value="1MB" />
        <param name="maxBackupIndex" value="3" />

        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
        </layout>

    </appender>

    <appender name="dailyrollinglogfile" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="file" value="logs/ennrollment.log" />
        <param name="immediateFlush" value="true" />
        <param name="append" value="true" />
        <param name="datePattern" value=" '.' yyyy-MM-dd "/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
        </layout>

    </appender>

    <root>
        <priority value="debug" />
        <appender-ref ref="console" />
        <appender-ref ref="dailyrollinglogfile" />
    </root>

</log4j:configuration>

2 个答案:

答案 0 :(得分:4)

您的root looger定义了所有组件的调试日志记录。您应该将其更改为warn(这样您仍会看到警告)并为您自己的组件添加额外的记录器:

<logger name="com.xxx.mycomponent">
  <level value="trace"/>

  <!-- appenders ... -->

</logger>

<root>
    <priority value="warn" />
    <appender-ref ref="console" />
    <appender-ref ref="dailyrollinglogfile" />
</root>

答案 1 :(得分:1)

只需关闭您不希望在日志中看到的包的日志记录...

<!-- Limit JBoss categories -->
<category name="org.jboss">
   <priority value="OFF"/>
</category>