2012-04-03 41 views
6

Tôi đang sử dụng thư viện commache commons và log4j. Tôi có tệp cấu hình xml và tệp log4j.properties. Tôi muốn xác định đường dẫn thuộc tính log4j của tôi bên trong tệp cấu hình xml của tôi. Để tải các thiết lập của tôi làm:log4j warning warning - apache commons

//Loading my xml file 
this.config = new XMLConfiguration(this.xmlFileName); 

Tại thời điểm này những lời cảnh báo sau đây được nêu ra:

log4j:WARN No appenders could be found for logger (org.apache.commons.configuration.ConfigurationUtils). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 

Tuy nhiên tôi chưa gọi là bất kỳ đối tượng log4j. Một khi tôi đã đọc tập tin xml tôi có thể làm việc thành công với cá thể log4j của tôi. Có cách nào để xóa những cảnh báo đó không?

Trả lời

1

đầu ra Log4J lỗi này khi một logger được tạo ra, nhưng không có appender (s) được (bị) được xác định. Trong thực tế lỗi này xảy ra khi một logger được tạo trước khi log4j được khởi tạo.

Bạn nói bạn chưa gọi bất kỳ đối tượng log4j nào. Nhưng trong thông báo lỗi bạn thấy rằng org.apache.commons.configuration.ConfigurationUtils tạo đối tượng nhật ký (xem dòng 66).

Bạn có thể tắt nó đi trước khi khởi tạo, xem How to turn off log4j warnings?

Logger.getRootLogger().setLevel(Level.OFF); 

Không nên có cần phải bật tính năng này một lần nữa kể từ khi khởi tạo bộ bình thường mức độ log của logger gốc.

+0

Ok, có cách nào để vô hiệu hóa LOG bên trong 'org.apache.commons.configuration.ConfigurationUtils' hoặc định cấu hình thuộc tính log4j của tôi đã liên kết cấu hình xml của tôi không? – PapaSmurf

4

Kiểm tra xem file log4j.properties là trong classpath

Liên kết này có thể có ích: http://www.coderanch.com/t/63230/open-source/log-log-WARN-No-appenders

+0

Tôi không muốn chèn log4j.properties tôi trong classpath, bởi vì nó được đặt bên ngoài để jar và trong thư mục khác. Tôi muốn tải nó vào thời gian chạy, sử dụng đường dẫn được chỉ định trong tệp cấu hình ứng dụng của tôi. – PapaSmurf

0

Bạn ít nhất nên đặt appender và mức độ logger cho logger gốc trong log4j nạp tập tin cấu hình. Nếu không, bạn sẽ thấy thông báo cảnh báo này.

Ví dụ về thiết appender và logger mức cho logger gốc:

#Set root logger 's level and its appender to an appender called CONSOLE which is defined below. 
log4j.rootLogger=DEBUG, CONSOLE 

#Set the behavior of the CONSOLE appender 
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
log4j.appender.CONSOLE.layout.ConversionPattern=%d [%t] %-5p %c - %m%n 
0

tôi giải quyết vấn đề của tôi với cách giải quyết này:

//Disable log level 
Logger.getRootLogger().setLevel(Level.OFF); 

Bây giờ tôi có thể đọc file cấu hình xml của tôi mà không cảnh báo.
Sau mức thiết lập đăng nhập:

Logger.getRootLogger().setLevel(Level.INFO); 
+0

Đây có phải là giải pháp tôi đã đề xuất trong nhận xét của tôi trong bài đăng của tôi không? – ChrLipp

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