2011-09-22 22 views
9

Tôi muốn tắt đầu ra cho bàn điều khiển khi đăng nhập vào tệp. Xem config-file dưới đây:làm cách nào để vô hiệu hóa đầu ra thành log4j.rootLogger?

log4j.rootLogger=info,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 

log4j.category.FileLog=info,R 
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.R.File=E:\\temp\\FileLog 
log4j.appender.R.Append = true 
log4j.appender.R.DatePattern='.'yyyy-MM-dd'.log' 
log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%m[%d{MM-dd HH:mm:ss}]%n 

khi tôi sử dụng:

Logger.getLogger("FileLog").info("LogText-FileLog"); 

này in log để stdout quá, làm thế nào tôi có thể vô hiệu hóa nó?

Trả lời

12

Bạn có thể sử dụng `log4j.additivity.FileLog = false, đó là 'cờ' bạn đang tìm kiếm.

Từ official log4j documentation:

Kết quả của một tuyên bố nhật ký của logger C sẽ đi đến tất cả các appenders trong C và tổ tiên của nó. Đây là ý nghĩa của thuật ngữ "appender additivity".

Tuy nhiên, nếu tổ tiên của logger C, nói P, có cờ additivity đặt sai, sau đó sản lượng của C sẽ được dẫn đến tất cả các appenders trong C và tổ tiên của nó tối đa và bao gồm P nhưng không phải là appenders trong bất kỳ tổ tiên nào của P.

Dấu nhật ký có cờ bổ sung được đặt thành true theo mặc định.

Xóa "stdout" khỏi trình ghi gốc của bạn (như được đề xuất trong các câu trả lời khác) có thể không phải là giải pháp, vì tôi cho rằng bạn vẫn quan tâm đến nhật ký bảng điều khiển đó trong một số trường hợp.

+0

nhờ @Guido García, tôi đã cố gắng 'log4j.additivity.R = false' và' log4j.app ender.R.additivity = false', nhưng không hoạt động – Koerr

+0

'log4j.additivity.FileLog = false' có thể hoạt động, cảm ơn :) – Koerr

-1

Xóa "stdout" khỏi trình ghi nhật ký gốc. Nó sẽ ngừng viết trên bàn điều khiển.

5

remove stdout từ đây

log4j.rootLogger=info,stdout 

Để:

log4j.rootLogger=info 
0

Tôi không biết câu trả lời cho câu hỏi chính xác cho người sử dụng được cung cấp, nhưng phải đối mặt với một vấn đề tương tự với mã log4j sau:

log4j.rootCategory=INFO, console 
log4j.appender.console=org.apache.log4j.ConsoleAppender 
log4j.appender.console.target=System.err 
log4j.appender.console.layout=org.apache.log4j.PatternLayout 
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n 

Tôi đã gỡ bỏ tất cả các dòng đăng nhập từ giao diện điều khiển bằng cách thay đổi

log4j.rootCategory=INFO, console 

để

log4j.rootCategory=OFF, console 
Các vấn đề liên quan