user2402105
user2402105

Reputation: 101

Hibernate logging with slf4j and log4j not generating logfile

I'm trying to config my hibernate application to output logging information. I have my log4j.properties configured as follows:

{
# 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

}

But I think hibernate is not even reading this file, because whatever I set to this file, nothing changes, and also I deleted it, and my application ran normally.

I think that maybe, some other jars in the project might have a log4j.properties file included in the jar, and then hibernate is using it. Does it make any sense?

Does anyone have any idea?

Thanks

Upvotes: 0

Views: 1835

Answers (2)

splatter_fadli
splatter_fadli

Reputation: 781

you have to add this jar into your classpath

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

that's work for me, good luck ~

Upvotes: 1

Paul Vargas
Paul Vargas

Reputation: 42020

The file log4j.xml has higher priority than the file 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>

Since version 1.2.12 of the framework, just need to put it in the default package in the src folder of your project. log4j automatically load it. No need to load it programmatically or anything extra.

Upvotes: 0

Related Questions