[Hibernate] Cấu hình ghi log trong Hibernate bằng SLF4j và Log4j

Thử logback
Logback logging framework, hãy đọc bài viết reasons to prefer logback over log4j. Để tích hợp logback với Hibernate, tham khảo – Cấu hình ghi log trong Hibernate – Logback.

Hibernate sử dụng Simple Logging Facade for Java (SLF4J) để điều hướng logging output đến logging frameworks (log4j, JCL, JDK logging, lofback…). Trong bài viết này, chúng ta sẽ tìm hiểu về cách để ghi log trong Hibernate với SLF4j + Log4j logging framework..

Kỹ thuật được sử dụng:
  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. Tìm SLF4j + Log4j
Để ghi log trong Hibernate, cần có “slf4j-api.jar” và cấu hình mong muốn của chúng ta, giống log4j “slf4j-log4j12.jar“. Chỉ cần khai báo dependency trong pom.xml.

File : pom.xml
XML:
<project ...>
    <repositories>
        <repository>
            <id>JBoss repository</id>
            <url>http://repository.jboss.org/nexus/content/groups/public/</url>
        </repository>
    </repositories>

    <dependencies>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>3.6.3.Final</version>
        </dependency>

        <!-- slf4j-log4j -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.6.1</version>
        </dependency>

    </dependencies>
</project>

slf4j-api.jar nằm ở đâu?
slf4j-api.jar
được khai báo bằng dependency của “hibernate-core“, vì thế , không cần khai báo nó thêm một lần nữa.


2. Log4j properties file
Tạo file “log4j.properties” và để nó trong project classpath, giống như bên dưới:

1592405446373.png


File : log4.properties
Code:
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\mkyongapp.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

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

# Log all JDBC parameters
log4j.logger.org.hibernate.type=ALL
Với cấu hình log4j này, nó sẽ ghi tất cả log ra console và cũng là 1 file tại “C:\\mkyongapp.log“.

Ghi chú
Hibernate cung cấp nhiều cài đặt để developer quyết định ghi những loại log nào. Luôn luôn quan tâm Hibernate Log Categories, chọn một số và implement nó trong file log của bạn.


3. Kết quả
Hãy chạy ứng dụng web Hibernate, tất cả log sẽ được ghi lại trong file “C:\\mkyongapp.log”. Xem bên dưới:
1592408577110.png



Download source code –Log4j-Hibernate-Example.zip (7KB)


Cám ơn các bạn đã theo dõi. Hẹn gặp lại các bạn trong các bài viết sau :D

Bài viết tham khảo tại: https://mkyong.com/hibernate/how-to-configure-log4j-in-hibernate-project/
 
Sửa lần cuối:

Bình luận