Раскрашивание регистратора Grails

Я пытаюсь раскрасить свой регистратор Grails. Однако всякий раз, когда я это делаю, я получаю следующую ошибку:

Error log4j:ERROR Unexpected char [h] at position 2 in conversion patterrn.

Я прочитал документацию по приложениям log4j, и пример почти дословно взят из документов, поэтому я не уверен, что делаю неправильно.

http://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout

Вот как выглядит мой код для установки консольного регистратора:

def log4jLayoutPatternConsole = new org.apache.log4j.PatternLayout("%highlight{%d [%t] %-5p %c{1} - %m%n%throwable}{FATAL=magenta, ERROR=red, WARN=yellow, INFO=black, DEBUG=green, TRACE=blue}")

// log4j configuration
log4j = {
    appenders {
        console(
                name: 'stdout',
                threshold: org.apache.log4j.Level.INFO,
                layout: log4jLayoutPatternConsole
                )

person Thomas Farvour    schedule 30.09.2013    source источник


Ответы (1)


Выделение цветом — это функция log4j 2, Grails использует версию 1.2.

person Ian Roberts    schedule 30.09.2013
comment
Есть ли способ заставить мое приложение Grails использовать серию 2? Это потребует от меня загрузки JAR и помещения его в папку /lib, правильно? - person Thomas Farvour; 30.09.2013
comment
@ThomasFarvour вам придется исключить подключаемый модуль log4j по умолчанию, а затем вам придется написать свою конфигурацию ведения журнала в обычном стиле log4j2 с файлом конфигурации XML или JSON - Grails DSL не будет работать. Наконец, вам нужно будет включить соответствующую привязку SLF4J, чтобы маршрутизировать регистраторы Grails по соглашению к log4j 2. - person Ian Roberts; 30.09.2013
comment
Спасибо. Есть ли более простой способ получить раскрашенный журнал с 1.2? Я видел плагин jcabi-log. Можно ли это использовать в Grails через DSL? - person Thomas Farvour; 30.09.2013
comment
@ThomasFarvour, вы можете использовать подходящую реализацию приложения, совместимую с log4j 1.2, например blog.uncommons.org/2006/04/09/ - person Ian Roberts; 30.09.2013