使用slf4j和log4j的Hibernate日志记录不生成日志文件

时间:2013-10-08 17:44:46

标签: java hibernate logging log4j slf4j

我正在尝试将我的hibernate应用程序配置为输出日志记录信息。我的log4j.properties配置如下:

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


# Direct log messages 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, debug


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

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

}

但是我觉得hibernate甚至没有读取这个文件,因为无论我设置这个文件,什么都没有改变,我也删除了它,我的应用程序正常运行。

我想也许,项目中的其他一些jar可能有一个包含在jar中的log4j.properties文件,然后hibernate正在使用它。它有意义吗?

有没有人有任何想法?

由于

2 个答案:

答案 0 :(得分:1)

你必须将这个jar添加到你的类路径

slf4j-api-1.7.5.jar       // the slf4j API
slf4j-log4j12-1.7.5.jar   // log4j bindings for slf4j
log4j-1.2.17.jar          // log4j itself

这对我有用,祝你好运〜

答案 1 :(得分:0)

文件log4j.xml的优先级高于文件log4j.properties

e.g:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" 
                                     "log4j.dtd" >
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <!-- console -->
    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
        <param name="threshold" value="TRACE" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="conversionPattern"
                value="%d{yyyyMMdd-HHmmss.SSS} %-5p (%c.java:%L).%M - %m%n" />
        </layout>
    </appender>

    <!-- categories -->
    <category name="org.hibernate">
        <priority value="INFO" />
    </category>
    <category name="org.hibernate.type">
        <priority value="TRACE" />
    </category>

    <!-- root -->
    <root>
        <priority value="TRACE" />
        <appender-ref ref="STDOUT" />
    </root>
</log4j:configuration>

从框架的1.2.12开始,只需将它放在项目的src文件夹中的默认包中。 log4j自动加载它。无需以编程方式或其他任何方式加载它。