jcl-over-slf4j:设置日志级别howto

时间:2014-09-04 20:09:43

标签: java logging log4j slf4j

这很奇怪,但只有致命& ERROR级别适用于我,即使我指定了TRACE级别。

LoggingTest.class:

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Test;

public class SLF4JTest {

    private static Log _LOG = LogFactory.getLog(SLF4JTest.class);

    @Test
    public void test() {
        _LOG.fatal("Fatal works!"); //works
        _LOG.error("Error works!"); //works
        _LOG.warn("Warn works!"); //doesn't work
        _LOG.info("Info works!"); //doesn't work
        _LOG.debug("Debug works"); //doesn't work
        _LOG.trace("Trace works"); //doesn't work
    }
}

log4j.properties:

log4j.rootLogger=TRACE, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd'T'HH:mm:ss.SSS}

2 个答案:

答案 0 :(得分:3)

您的项目可能存在一些错误。

  • 首先,如果您想在代码中使用SLF4J,则必须更改实例的类型:

    // Instance of SLF4J
    private static final org.slf4j.Logger _LOG = 
            org.slf4j.LoggerFactory.getLogger(SLF4JTest.class);
    
  • 其次,您必须将文件slf4j.properties重命名为log4j.properties

  • 第三,您需要添加以下库:

    • SLF4J-API-1.7.7.jar
    • SLF4J-log4j12-1.7.7.jar
    • 的log4j-1.2.17.jar

但是,如果你真的想使用Commons Logging,还要再添加一个(替换commons-logging-1.1.3.jar):

  • JCL-过SLF4J-1.7.7.jar

答案 1 :(得分:0)

如果您想使用通用日志记录库,那么您应该拥有唯一依赖关系来登录下面显示的pom.xml:

<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.1.1</version>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

还要注意 log4.properties 文件的位置。对于测试,它应位于 src / test / resources 文件夹中。对于应用程序执行,它应存储在 src / main / resources 文件夹中。