Log4j如何配置日志级别

时间:2013-01-05 15:23:12

标签: java log4j jboss7.x slf4j

我用Netbeans 7.2.1中的jboss-as-maven-plugin版本7.3.Final(目标jboss-as:run)运行我的战争。

我的pom.xml

<!-- logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${slf4j.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${slf4j.version}</version>
            <scope>runtime</scope>
        </dependency>

slf4j.version是1.7.2。

我有一种奇怪的行为:

这是我的log4j.xml

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

    <!-- Appenders -->
    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <param name="Target" value="System.out" />
        <param name="Encoding" value="UTF-8" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-5p: %c - %m%n" />
        </layout>
    </appender>

    <!-- Application Loggers -->
    <logger name="org">
        <level value="warn" />
    </logger>

    <logger name="org.openid4java">
        <level value="debug" />
    </logger>


    <logger name="fr.mypackage">
        <level value="debug" />
    </logger>


    <!-- Root Logger -->
    <root>
        <priority value="warn" />
        <appender-ref ref="console" />
    </root>

</log4j:configuration>

使用:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
    private static final Logger logger = LoggerFactory.getLogger(MyController.class);

我在fr.mypackage中的记录器不能很好地记录。我的意思是我的所有logger.debug都不起作用,只显示我的logger.warn。我不明白,因为我将fr.mypackage设置为调试级别。

更奇怪的是,显示来自级别INFO的org.openid4java的日志。

我该怎么办?我的错误在哪里?

由于

3 个答案:

答案 0 :(得分:1)

问题出在最后。您已将整体日志级别设置为WARN。将根日志记录级别更改为“debug”,所有内容都应该没问题。

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

答案 1 :(得分:0)

appender reference添加到logger definiton将解决此问题

<logger name="fr.mypackage">
    <level value="debug" />
    <appender-ref ref="console" />
</logger>

答案 2 :(得分:0)

检入服务器日志跟踪级别