简体   繁体   中英

Log4j how to configure Log level

I run my war with jboss-as-maven-plugin version 7.3.Final (goal jboss-as:run) from Netbeans 7.2.1.

My 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 is 1.7.2.

I have a strange behavior:

Here my 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>

Use :

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

My logger in fr.mypackage don't log nicely. I mean all my logger.debug didn't work, only my logger.warn are displaying. I don't understand because I set fr.mypackage to debug level.

More strange is that log from org.openid4java at level INFO are display.

What should I do? Where is my mistake ?

Thanks

The problem is at the end. You have set the overall log level to WARN. Change the root logging level to "debug" and all should be fine.

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

检入服务器日志跟踪级别

Adding appender reference to the logger definiton will solve this issue

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM