2015-01-16 18 views
13

Tôi không sử dụng bất kỳ tệp cấu hình XML nào, thay vào đó tôi đang đặt cấu hình trình ghi nhật ký theo cách lập trình. Trình ghi nhật ký hoạt động chính xác nhưng chỉ khi tôi gọi dòng đầu tiên của mã bên dưới, thông báo cảnh báo ERROR hiển thị cho tôi biết rằng tệp cấu hình không được tìm thấy và cấu hình mặc định sẽ được sử dụng.LOG4J2: Vô hiệu hóa "Không tìm thấy tập tin cấu hình log4j2 .." khi định cấu hình theo chương trình

Nhưng tôi không muốn thông báo này được hiển thị trên bảng điều khiển mỗi lần tôi rung chương trình vì tôi sẽ tự mình lập trình tự thêm cấu hình.

Thông điệp:

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console. 

Nó đến khi tôi gọi vào mã bên dưới:

LoggerContext context = (LoggerContext) LogManager.getContext(false); 

Hoặc nếu tôi nhận được logger gốc đầu tiên:

Logger logger = LogManager.getLogger(LogManager.ROOT_LOGGER_NAME); 

Có một số loại thuộc tính mà tôi có thể đặt để vô hiệu hóa thông báo này hiển thị? Hoặc cách tiếp cận khác ?.

LƯU Ý: Tôi bị vô hiệu hóa một thông báo liên quan đến Log4j2 JMX bằng cách thiết lập thuộc tính -Dlog4j2.disable.jmx=true. Nhưng tôi không thể tìm thấy cái này.

Trả lời

9

Thêm thuộc tính hệ thống sau đây để không hiển thị thông điệp rằng:

-Dorg.apache.logging.log4j.simplelog.StatusLogger.level=OFF 

Ngoài ra, và đơn giản hơn:

import org.apache.logging.log4j.Level; 
import org.apache.logging.log4j.status.StatusLogger; 

... 

StatusLogger.getLogger().setLevel(Level.OFF); 
+0

Txs rất nhiều Paul! Điều đó giải quyết được vấn đề. – Excite

+0

Bạn được chào đón. ☺ –

2

Bạn phải triển khai phương thức khởi tạo để khởi tạo đúng cấu hình log4j từ mã.

Kiểm tra "Làm cách nào để định cấu hình log4j2 trong mã mà không có tệp cấu hình" trong trang bên dưới cũng cung cấp mã nguồn.

http://logging.apache.org/log4j/2.x/faq.html

+0

Có nhưng tất cả các phương thức khởi tạo trong lớp đó yêu cầu bạn cung cấp vị trí của tệp cấu hình. – Excite

6

Bạn chỉ có thể làm điều này trong chính bạn lớp học.

static { 
    StatusLogger.getLogger().setLevel(Level.OFF); 
} 
+0

~ Đây ~ là câu trả lời. :) – Qix

+0

Lưu ngày của tôi !!! thnx – limonik

Các vấn đề liên quan