1

我想在不使用 maven 的情况下将日志使用 slf4j + log4j 添加到我的 java 项目中,我将库 (slf4j-api-1.6.1.jar + log4j-1.2.14.jar) 放入了我的类路径,但我的日志没有创建和我收到了这个错误

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.

这是我的 log4j.properties,

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\coreservice.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5 %c{1}:%L - %m%n

# Direct log message to 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{ABSOLUTE} %5p %c{1}:%L - %m%n

# Root logger option
log4j.rootLogger=INFO, file, stdout

# Log everything. Good for troubleshooting
log4j.logger.org.hibernate=INFO

# Log all JDBC parameters
log4j.logger.org.hibernate.type=ALL

注意:我在这个项目中使用 eclipse juno,

任何帮助都会很高兴,

4

1 回答 1

3

http://www.slf4j.org/codes.html#StaticLoggerBinder说:

org.slf4j.impl.StaticLoggerBinder 类无法加载到内存时会报此错误。当在类路径上找不到合适的 SLF4J 绑定时,就会发生这种情况。将 slf4j-nop.jar、slf4j-simple.jar、slf4j-log4j12.jar、slf4j-jdk14.jar 或 logback-classic.jar 中的一个(也是唯一一个)放在类路径上应该可以解决问题。SINCE 1.6.0 从 SLF4J 版本 1.6 开始,在没有绑定的情况下,SLF4J 将默认为无操作 (NOP) 记录器实现。

我认为您在类路径中缺少 slf4j-log4j-xxx.jar: Config SLF4J using library to use LOG4J configuration

如果您只需要使用 slf4j 进行日志记录,那么我更喜欢 logback ( http://logback.qos.ch/ ),因为它是 SLF4J API 的本机实现。根据 slf4j 网站,其他的是“包装实现”。

于 2013-10-17T06:11:28.397 回答