如何在不使用maven的情况下在hibernate(Java Project)中使用slf4j + log4j

时间:2013-10-17 05:20:10

标签: java eclipse hibernate

我想在不使用maven的情况下将log使用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,

任何帮助都会很愉快,

1 个答案:

答案 0 :(得分:3)

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

  

org.slf4j.impl.StaticLoggerBinder时会报告此错误   class无法加载到内存中。没有时会发生这种情况   可以在类路径上找到适当的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网站,其他是“Wrapped implementation”。