【发布时间】:2014-05-22 22:34:47
【问题描述】:
我知道以前有人问过这个问题,但没有一个答案对我有用。我得到了错误:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
我已经尝试过使用:
- 仅 slf4j-api
- slf4j-api 和 log4j
- slf4j-api, jcl-over-slf4j, log4j
- 仅 slf4j-log4j12
- slf4j-log4j12 和 log4j
- 仅 logback-classic
- logback-classic 和 logback-core
- slf4j-api、logback-classic 和 logback-core
- log4j-api 2, log4j-core 2, log4j-slf4j-impl
- log4j-over-slf4j, jul-to-slf4j, logback-classic
- slf4j-api, logback-classic
对于我尝试过的每个教程/答案版本和最新版本 (mvn versions:use-latest-version)
由于那里有一些答案告诉您在类路径中只能有其中一个库,因此我说我已经尝试过它们。
我还在src/main/resources/ 中使用了log4j.properties,就像这样:
# Set root logger level and appender name.
log4j.rootLogger = ALL, file
# Specify appenders.
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender
# Configure console appender.
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern = %d{ABSOLUTE} [%t] %-5p %m%n
# Configure file appender.
log4j.appender.file.File = /webapp/logs/web.log
log4j.appender.file.DatePattern = '.'yyyy-MM-dd
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern = %d{ABSOLUTE} [%t] %-5p %m%n
还有一个logback.xml 在同一个地方:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>silkroad.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<logger name="com.base22" level="ALL"/>
<root level="debug">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
这是我尝试过的代码:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Test {
static Logger log = LoggerFactory.getLogger(Test.class);
public static void main(String[] args) {
log.debug("Testing the log");
}
}
从我使用的登录依赖中分离出来:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
我已经学习了几个教程 (12~15),使用不同的方式让日志外观工作,包括在他们的网站上没有成功的教程。
【问题讨论】:
标签: maven logging tomcat7 slf4j logback