How to configure logging in Hibernate – SLF4j + Log4j

Try logback
Try logback logging framework, read this article for the “reasons to prefer logback over log4j. To integrate logback with Hibernate, refer this – How to configure logging in Hibernate – Logback

Hibernate uses Simple Logging Facade for Java (SLF4J) to redirect the logging output to your perfer logging frameworkis (log4j, JCL, JDK logging, lofback…). In this tutorial, we show you how to do logging in Hibernate with SLF4j + Log4j logging framework.

Technologies used in this article :

  1. Hibernate 3.6.3.Final
  2. slf4j-api-1.6.1
  3. slf4j-log4j12-1.6.1
  4. Eclipse 3.6
  5. Maven 3.0.3

1. Get SLF4j + Log4j

To do logging in Hibernate, you need “slf4j-api.jar” and your preferred binding, like log4j “slf4j-log4j12.jar“. Just declares the dependency in your pom.xml.

File : pom.xml

<project ...>
			<id>JBoss repository</id>
		<!-- slf4j-log4j -->
Where is slf4j-api.jar?
The slf4j-api.jar is defined as the dependency of “hibernate-core“, so , you do not need to declare it again.

2. Log4j properties file

Create a “” file and put it into your project’s classpath, see figure below :

configure log4j in hibernate

File :

# Direct log messages to a log file
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
# Direct log messages to stdout
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
# Log all JDBC parameters

With this log4j configuration, it will redirect all the logging output to console and also a file at “C:\\mkyongapp.log“.

Hibernate provides many settings to let developer to decide what to log. Always refer to this Hibernate Log Categories, choose some and implement it in your log file.

3. Output

Try run your Hibernate web application, all logging output will be logged in “C:\\mkyongapp.log” file. See figure below :

log4j output
Download it – (7KB)


  1. Simple Logging Facade for Java (SLF4J)
Tags :

About the Author

Founder of and, love Java and open source stuff. Follow him on Twitter, or befriend him on Facebook or Google Plus. If you like my tutorials, consider make a donation to these charities.


  • Pingback: link()

  • Pingback: link()

  • Pingback:

  • Pingback:

  • Pingback: alkaline water()

  • Pingback: loan payment plan()

  • Pingback: our website()

  • Pingback: house blue()

  • Pingback: a-z locksmiths sunderland()

  • Pingback: journeyman electrical tool list()

  • Pingback: water ionizer pay plan loans()

  • Pingback: pay per day loans plan()

  • Pingback: pay day loans()

  • Pingback: YouTube favorites kopen()

  • Pingback: parking()

  • Pingback: alkaline water machine()

  • Pingback: laan her og nu()

  • Pingback: laan her og nu()

  • Pingback: mp4 mobile porn()

  • Pingback: parking()

  • Pingback: lan penge nu uden renter()

  • Pingback: DIRECTV vs Cable()

  • Pingback: Stiffy hero of cocknia()

  • Pingback: Curvy sweeties maria fiori and karina grand culo screwed()

  • Pingback: best online casinos()

  • Pingback: watch movies online()

  • Pingback: watch movies online free()

  • Pingback: Blue Coaster33()

  • ab

    Thanks for the tutorial. However, there is a typo. Could you replace “File :” with “File :”? (the “j” is missing)

  • Abhijit Mallick

    Logging is not working. I have log4j in proper location. Do I need to enable it in anyway?please help.

  • beeky

    How do I run the application?

  • Adarsh


    I am using Hibernate + C3P0 + log4j. When the log level is info the hibernate log shows the password. How to prevent hibernate from printing the password? It should ideally display *****


    • mkyong

      Show what password? Mind to elaborate more?

      • Adarsh

        Hi mkyong

        The log file actually displays the user id and the real password. I want to prevent the actual password being displayed and instead should display only ******

        Please help me in disabling the printing of real password in log files


  • Luiz E.

    there’s a typo on your tutorial
    when you say “File :” should be “File :”

  • RAJA.K

    Hello, MYKONG
    Thanks for your tutorial
    that is very simple and clear.
    I have clear understanding about annotations.

    Thank You

  • erhan elg√ľn

    one thing is mising. the log4j.jar must be included in the classpath too.

  • Fandy Akhmad

    Hello, MYKONG
    Thanks for your tutorial :) that is very simple and clear.

    But try that tutorial above, i have not see my log. :(
    This my step :
    1. In my library slf4j-api-1.6.4.jar , slf4j-simple-1.6.4.jar , slf4j-log4j12-1.6.4.jar
    2. I create pom.xml file in src/
    3. I set pom.xml according to my version of Hibernate and slf4j. I use Hibernate 3.3.0GA
    4. I create in src/ and in the log4j i set directory for my log :
    D:\\Goes to Campus\Belajar\Hibernate\hibernatefirst.log

    I run my Hibernate Application and it not shown in hibernatefirst.log file.
    Please help me..

    Thank you..

  • Rainer

    Great help, thanks!

    I was struggling to get the to do anything until I came across your guide. Quick change in the .pom file to switch from simple to log4j… done!

  • unknown


  • Pingback: How to display hibernate sql parameter values – Log4j()

  • Andriy Vasylyev

    Do not forget, that Hibernate internally uses SLF4J logging.
    To bind SLF4J logging to LOG4J logging put slf4j-log4j12-x.y.jar into your class path (and avoid any other binding like slf4j-jdk14-x.y.jar).
    Only than your Log4J configuration will be taken into account.

    • mkyong

      Thanks for your input.

  • Pingback: Hibernate Tutorials | Tutorials()