Cấu hình log4j trong java

Tại sao lại cần đến log ? 

Bạn luôn nhớ rằng dù bất kỳ chương trình tốt đến thế nào cũng phải cần thông tin để bắt lỗi khi có bug xảy ra. Thông thường người ta sẽ sử dụng log để ghi lại quá trình làm việc của user, để khi có vấn đề có thể kiểm tra lại được.

Mỗi ngôn ngữ riêng thì đều có thư viện hỗ trợ log riêng. Như java có log4j, .Net có log4Net ....

Trong post này chúng ra tìm hiểu cách đơn giản nhất để config log4j, và sample đơn giản để write log.

1. Chuẩn bị môi trường log4j

Trước hết bạn có thể download log4j tại đây : https://logging.apache.org/log4j/1.2/download.html ( bản mới nhất đang là log4j-1.2.17.jar )

Add thư viện log4j trong Eclipse

2. Cấu hình log4j.properties

Cấu hình ghi log ra màn hình consol

# Root logger option
log4j.rootLogger=DEBUG, stdout

# 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{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

Cấu hình ghi log ra file

# Root logger option
log4j.rootLogger=DEBUG, file

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender

#Redirect to Tomcat logs folder
#log4j.appender.file.File=${catalina.home}/logs/logging.log

log4j.appender.file.File=D:\\eclipse4.4\\workspace\\SampleJava\\resource\\logging.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
 log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

Cài đặt ghi log cả ra file và ra màn hình consol

# Root logger option
log4j.rootLogger=DEBUG, file, stdout

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=D:\\eclipse4.4\\workspace\\SampleJava\\resource\\logging.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-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{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

Chú ý trong config log thì cần chú ý đến level log . Thông thường có các level như sau:

  • Fatal
  • Error
  • Warn
  • Info
  • Debug

Để config level ghi log thì config tai dòng :

# Root logger option
 log4j.rootLogger=INFO, file, stdout

3. Ví dụ code

Tạo class SampleLog4j.java

package com.loop.log;

import org.apache.log4j.Logger;

public class SampleLog4j {

  private static Logger logger = Logger.getLogger(SampleLog4j.class);

  /**
  * Create by Cuder
  */
  public static void main(String[] args) {
    logger.fatal("Log line 1");
    logger.error("Log line 2");
    logger.warn("Log line 3");
    logger.info("Log line 4");
    logger.debug("Log line 5");
  }
}

Kết quả logging.log

2017-03-26 23:27:26 FATAL SampleLog4j:20 - Log line 1
2017-03-26 23:27:26 ERROR SampleLog4j:21 - Log line 2
2017-03-26 23:27:26 WARN SampleLog4j:22 - Log line 3
2017-03-26 23:27:26 INFO SampleLog4j:23 - Log line 4
 2017-03-26 23:27:26 DEBUG SampleLog4j:24 - Log line 5

5 (100%) 1 vote
Click Here to Leave a Comment Below 0 comments