简体   繁体   English

Log4j如何配置日志级别

[英]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. 我用Netbeans 7.2.1中的jboss-as-maven-plugin版本7.3.Final(目标jboss-as:run)运行我的战争。

My pom.xml 我的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. slf4j.version是1.7.2。

I have a strange behavior: 我有一个奇怪的行为:

Here my log4j.xml 这是我的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. 我在fr.mypackage中的记录器不能很好地记录。 I mean all my logger.debug didn't work, only my logger.warn are displaying. 我的意思是我的所有logger.debug都不起作用,只显示我的logger.warn。 I don't understand because I set fr.mypackage to debug level. 我不明白,因为我将fr.mypackage设置为调试级别。

More strange is that log from org.openid4java at level INFO are display. 更奇怪的是显示来自级别INFO的org.openid4java的日志。

What should I do? 我该怎么办? Where is my mistake ? 我的错误在哪里?

Thanks 谢谢

The problem is at the end. 问题出在最后。 You have set the overall log level to WARN. 您已将整体日志级别设置为WARN。 Change the root logging level to "debug" and all should be fine. 将根日志记录级别更改为“debug”,一切都应该没问题。

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

检入服务器日志跟踪级别

Adding appender reference to the logger definiton will solve this issue 添加对logger definiton appender reference将解决此问题

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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