Подтвердить что ты не робот

Как изменить цвет вывода журнала log4j

В настоящее время я работаю над проектом Java, и мы используем ведение журнала. Когда создается журнал, он всегда печатается обычным черным текстом, независимо от уровня ведения журнала (INFO, ERROR и т.д.).

Как я могу переопределить цвет этих выходов, так что, например, все журналы ERROR будут красными, а все WARN-журналы будут оранжевыми и т.д.

Спасибо

EDIT: мне удалось загрузить файл ANSIColorLayout, и теперь мой log4j.properties ссылается на него. Однако я получаю следующие ошибки:

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.

Мой файл log4j.properties выглядит следующим образом:

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

Я предполагаю, что я должен использовать собственный пользовательский ConsoleAppender? У кого-нибудь есть идеи?

Спасибо

4b9b3361

Ответ 1

Вы можете загрузить одну из различных реализаций ANSIColorLayout.java. Эти "цветные логеры" работают, расширяя класс PatternLayout.

Тогда вы можете просто сделать что-то подобное в своем log4j conf:

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

Здесь ссылка на один ANSIColorLayout.java готова к использованию:

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