Как использовать макет xml или html с Grails Log4j DSL

Я пытаюсь получить log4j для входа в файл в XMLLayout, используя groovy log4j dsl. Однако, похоже, что "layout:"- часть игнорируется. Это моя установка:

appenders {
    file name: 'fileAppender', layout: xml, file: '/tmp/logs/applog.xml', threshold: org.apache.log4j.Level.INFO
    console name: "stdout", threshold: org.apache.log4j.Level.INFO
}

root {
    debug 'stdout', 'fileAppender'
}

Таким образом, в stdout я получаю свой шаблонный макет информационного уровня, но в файле я также получаю шаблонный макет...

В чем тут подвох?

2 ответа

Решение

Это ошибка. Я исправил это для 2.0.1: http://jira.grails.org/browse/GRAILS-8635

Обходной путь, который вы нашли, состоит в том, чтобы явно использовать конструктор вместо ярлыка DSL.

Ну, я обнаружил, что вы можете просто использовать макет: новый XMLLayout() или макет: новый HTMLLayout()

Но все же в документации сказано

По умолчанию Log4j DSL предполагает, что вы хотите использовать PatternLayout. Тем не менее, есть и другие доступные макеты, в том числе:

xml - Create an XML log file
html - Creates an HTML log file
simple - A simple textual log
pattern - A Pattern layout

Мне кажется, что ярлыки для XML и HTML не работают.

Другие вопросы по тегам