2012-02-20 32 views
12

Tôi hiện đang làm việc trên một dự án Java và chúng tôi đang sử dụng ghi nhật ký. Khi Nhật ký được tạo, nó luôn luôn được in bằng văn bản màu đen, bất kể mức ghi nhật ký (INFO, ERROR, vv)Cách thay đổi màu của đầu ra ghi nhật ký log4j

Làm thế nào tôi có thể ghi đè màu của các đầu ra này, ví dụ như tất cả các bản ghi ERROR sẽ có màu đỏ trong khi tất cả WARN bản ghi sẽ cam, vv

Cảm ơn

EDIT: tôi quản lý để tải về tập tin ANSIColorLayout và log4j.properties của tôi bây giờ đề cập đến nó. Tuy nhiên tôi nhận được các lỗi sau đây:

log4j:WARN No such property [all] in org.apache.log4j.ConsoleAppender. 
log4j:WARN No such property [reset] in org.apache.log4j.ConsoleAppender. 
log4j:WARN No such property [stacktrace] in org.apache.log4j.ConsoleAppender. 
log4j:WARN No such property [info] in org.apache.log4j.ConsoleAppender. 
log4j:WARN No such property [error] in org.apache.log4j.ConsoleAppender. 
log4j:WARN No such property [defaultcolor] in org.apache.log4j.ConsoleAppender. 

tập tin log4j.properties của tôi trông như thế này:

log4j.rootLogger = DEBUG, CA, FA 

log4j.appender.CA = org.apache.log4j.ConsoleAppender 
log4j.appender.CA.layout = balle.logging.ANSIColorLayout 
log4j.appender.CA.layout.ConversionPattern=%-5p [%d{MM-dd-yyyy HH:mm:ss}] %c - %m%n 
log4j.appender.CA.all=\u001B[1;37m log4j.appender.A1.fatal=\u001B[1;31m 
log4j.appender.CA.error=\u001B[0;31m log4j.appender.A1.warn=\u001B[1;33m 
log4j.appender.CA.info=\u001B[0;37m log4j.appender.A1.debug=\u001B[0;36m 
log4j.appender.CA.reset=\u001B[1;37m 
log4j.appender.CA.stacktrace=\u001B[0;31m 
log4j.appender.CA.defaultcolor=\u001B[1;37m 

tôi đoán là tôi đang phải sử dụng ConsoleAppender tùy chỉnh của riêng tôi? Có ai có ý tưởng nào?

Cảm ơn

Trả lời

6

Bạn có thể tải về một trong những khác nhau ANSIColorLayout.java thực hiện. Những "logger màu" hoạt động bằng cách mở rộng lớp PatternLayout.

Sau đó, bạn chỉ có thể làm điều gì đó như thế này trong conf log4j của bạn:

og4j.appender.stdout.layout=com.acme.ANSIColorLayout 

Dưới đây là một liên kết đến một ANSIColorLayout.java sẵn sàng sử dụng:

http://code.google.com/p/a-distributed-file-system/source/browse/trunk/DistributedFileSystem/ui/net/dfs/ui/ANSIColorLayout.java

+0

vào liên kết nên được Bạn có thể Google vào * "ANSIColorLayout mở rộng PatternLayout" * và bạn sẽ tìm thấy các liên kết khác:) – TacticalCoder

+0

Điều này có vẻ như một câu hỏi ngớ ngẩn nhưng làm cách nào để chỉnh sửa log4j conf để sử dụng Lớp Màu ? Tôi không chắc tôi có nó? –

+0

@Dan_Dan_Man: nó phụ thuộc vào loại tệp log4j conf bạn đang sử dụng. Tôi đã thêm dòng cho phép thay đổi đầu ra * stdout * để sử dụng trình ghi màu. – TacticalCoder

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