0

我正在尝试将我的休眠应用程序配置为输出日志信息。我的 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 正在使用它。这有什么意义吗?

有人有什么主意吗?

谢谢

4

2 回答 2

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

这对我有用,祝你好运~

于 2013-10-17T10:22:38.730 回答
0

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

例如:

<?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版本开始,只需要把它放在你项目文件夹下的默认包中即可。srclog4j 自动加载它。无需以编程方式加载它或任何额外的东西。

于 2013-10-08T21:06:20.610 回答