2012-02-20 16 views
12

Şu anda bir Java projesi üzerinde çalışıyorum ve günlüğe kaydetmeyi kullanıyoruz. Bir Günlük yapıldığında, her zaman düz siyah metinde yazdırılır, günlük düzeyi ne olursa olsun (BİLGİ, HATA, vb.)Günlüğe kaydetme çıkışının rengi nasıl değiştirilir log4j

Bu çıktıların rengini nasıl geçersiz kılabilirim, örneğin tüm ERROR günlükleri kırmızı olur. WARN günlükleri

DÜZENLEME

Teşekkür

turuncu vs. olacaktır: Ben ANSIColorLayout dosyasını indirmek başardı ve benim log4j.properties şimdi ifade eder. Ancak şu hataları alıyorum:

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. 

Benim log4j.properties dosya şuna benzer:

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 

Benim tahminim Kendi özel ConsoleAppender kullanmak gerekiyor bu? Herhangi bir fikri olan var mı?

Teşekkür

cevap

6

Çeşitli ANSIColorLayout.java uygulamalarından biridir indirebilirsiniz. Bu "renk kaydediciler", PatternLayout sınıfını genişleterek çalışır.

Sonra basitçe Log4j Konfigürasyon böyle bir şey yapabilirsiniz: Burada

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

bir bağlantı var bir ANSIColorLayout.java hazır kullanmak:

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

+0

bağlantı olmalı kırık Google'da * olabilir "ANSIColorLayout PatternLayout'u genişletir" * ve diğer bağlantıları bulacaksınız:) – TacticalCoder

+0

Bu aptalca bir soru gibi görünebilir, ancak Color Class'ı kullanmak için log4j conf'i nasıl düzenlerim? ? Anladığımdan emin değilim? –

+0

@Dan_Dan_Man: kullandığınız log4j conf dosyasının türüne bağlıdır. Renk kaydediciyi kullanmak için * stdout * çıktısını değiştirmeye izin veren satırı ekledim. – TacticalCoder

İlgili konular