CyStack logo
  • Sản phẩm & Dịch vụ
  • Giải pháp
  • Bảng giá
  • Công ty
  • Tài liệu
Vi

vi

Mục lục

Trang chủBlogCấu hình log4j.properties...
Java

Cấu hình log4j.properties trong Java – Ví dụ đầy đủ và dễ hiểu

3 phút đọc24/09/2025
CyStack Author
Chris Pham

Technical Writer

0 lượt xem
Reading Time: 3 minutes

Trong hướng dẫn về log4j, chúng ta đã thấy cách sử dụng cấu hình log4j dựa trên XML. Tuy nhiên, file log4j.xml thường dài dòng, vì vậy bạn có thể dùng log4j.properties để quản lý log hiệu quả. Cùng tìm hiểu cách chuyển đổi và cấu hình log4j.properties qua ví dụ thực tế.

Cấu hình log4j.properties trong Java

Root Logger

Root logger được sử dụng khi không có logger nào khớp. Trong XML, nó được định nghĩa như sau:


	
	
	

Nó có thể được định nghĩa trong file properties như sau:

log4j.rootLogger=DEBUG, file, console

Giá trị đầu tiên trong danh sách comma-separated là mức logging level của root logger. Các giá trị còn lại là các appender.

Log4j Appenders

Chúng ta có thể định nghĩa nhiều appender trong log4j. Dưới đây là hai appender: một dùng để ghi ra console và một dùng để ghi vào file.



	
	
		
	




	
	
	
	
	

	
		
	

Trong file log4j.properties, chúng sẽ được định nghĩa như sau:

#Define console appender
log4j.appender.console=org.apache.log4j.ConsoleAppender
logrj.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-5p %c{1} - %m%n

#Define rolling file appender
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logs/main.log
log4j.appender.file.Append=true
log4j.appender.file.ImmediateFlush=true
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=5
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d %d{Z} [%t] %-5p (%F:%L) - %m%n

Vậy định dạng của log4j properties file appender là log4j.appender.{appender_name}.{appender_config} . Lưu ý rằng các cấu hình của appender như MaxFileSize, MaxBackupIndex vẫn giống như trong XML configuration file.

Log4j loggers

Tương tự như appender, chúng ta có thể có nhiều logger. Ví dụ về cấu hình dựa trên XML:


	
	
	



	
	

Chúng sẽ được định nghĩa trong file properties dưới dạng log4j.logger.{logger_name}. Giá trị bao gồm mức độ ghi log và danh sách các appender sẽ sử dụng.

#Define loggers
log4j.logger.com.journaldev.log4j=WARN, file, console
log4j.logger.com.journaldev.log4j.logic=DEBUG, file, console

Log4j logger additivity Việc sử dụng additivity được thể hiện trong cấu hình logger XML ở trên, đây là một attribute của phần tử logger. Dưới đây là cách sử dụng trong cấu hình log4j properties file dưới dạng log4j.additivity.{logger\\_name}.

#setting additivity
log4j.additivity.com.journaldev.log4j=false
log4j.additivity.com.journaldev.log4j.logic=false

Dựa trên những gì nêu ở trên, dưới đây là file log4j.properties cuối cùng của tôi.

#Define root logger options
log4j.rootLogger=DEBUG, file, console

#Define console appender
log4j.appender.console=org.apache.log4j.ConsoleAppender
logrj.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-5p %c{1} - %m%n

#Define rolling file appender
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logs/main.log
log4j.appender.file.Append=true
log4j.appender.file.ImmediateFlush=true
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=5
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d %d{Z} [%t] %-5p (%F:%L) - %m%n

#Define loggers
log4j.logger.com.journaldev.log4j=WARN, file, console
log4j.logger.com.journaldev.log4j.logic=DEBUG, file, console

#setting additivity
log4j.additivity.com.journaldev.log4j=false
log4j.additivity.com.journaldev.log4j.logic=false

Log4j PropertyConfigurator

PropertyConfigurator được dùng để cấu hình các thiết lập của log4j. Việc này là tùy chọn nếu tên file là log4j.properties và nằm trong project classpath. Chúng ta phải cấu hình nó trước khi sử dụng logger. Dưới đây là một chương trình đơn giản minh họa cách cấu hình và sử dụng log4j logging.

package com.journaldev.log4j.main;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

import com.journaldev.log4j.logic.MathUtils;

public class Log4jExample {

	static{
		init();
	}
	
	private final static Logger logger = Logger.getLogger(Log4jExample.class);
	
	public static void main(String[] args) {

		logger.debug("My Debug Log");
		logger.info("My Info Log");
		logger.warn("My Warn Log");
		logger.error("My error log");
		logger.fatal("My fatal log");
				
	}

	/**
	 * method to init log4j configurations
	 */
	private static void init() {
		PropertyConfigurator.configure("log4j.properties");
	}

}

Khi chương trình được thực thi, bạn sẽ thấy kết quả dưới đây trên console log.

WARN  Log4jExample - My Warn Log
ERROR Log4jExample - My error log
FATAL Log4jExample - My fatal log

Cùng lúc đó, bạn sẽ thấy các log được tạo ra trong file main.log như sau.

2016-05-14 00:34:11,994 +0530 [main] WARN  (Log4jExample.java:20) - My Warn Log
2016-05-14 00:34:11,995 +0530 [main] ERROR (Log4jExample.java:21) - My error log
2016-05-14 00:34:11,995 +0530 [main] FATAL (Log4jExample.java:22) - My fatal log

Lưu ý rằng các logger ở mức debug và info sẽ không được in ra vì mức logging tối thiểu đã được đặt là WARN. Đó là tất cả cho ví dụ sử dụng file log4j.properties. Chúc bạn ghi log vui vẻ!

Về tác giả

Chris Pham
Chris PhamTechnical Writer

I have over 5 years of experience writing technical documentation for tech products, making them accessible and user-friendly. My focus is always on providing clear and precise information. @#@ Tôi đã có hơn 5 năm kinh nghiệm viết tài liệu kỹ thuật cho các sản phẩm công nghệ, giúp người dùng dễ dàng tiếp cận và sử dụng. Tôi luôn tập trung vào việc cung cấp thông tin chính xác và dễ hiểu.

Cập nhật thông tin mới nhấtNhận các thông tin mới nhất về mối đe dọa, báo cáo an ninh mạng từ CyStack về hòm thư điện tử của bạn

Thảo luận (0)

Đăng nhập để thảo luận

Bài viết liên quan