如何在Grails Log4j DSL中使用xml或html布局

如何在Grails Log4j DSL中使用xml或html布局,grails,groovy,log4j,pattern-layout,Grails,Groovy,Log4j,Pattern Layout,我尝试使用groovy log4j dsl让log4j在XMLLayout中登录到文件。然而,“布局:”部分似乎被忽略了。这是我的设置: appenders { file name: 'fileAppender', layout: xml, file: '/tmp/logs/applog.xml', threshold: org.apache.log4j.Level.INFO console name: "stdout", threshold: org.apache.log4j.

我尝试使用groovy log4j dsl让log4j在XMLLayout中登录到文件。然而,“布局:”部分似乎被忽略了。这是我的设置:

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'
}
所以为了标准,我得到了我的信息级模式布局,但在文件中我也得到了模式布局


这里有什么诀窍?

我发现你可以用 布局:新的XMLLayout() 或 布局:新的HTMLLayout()

但是,在文件中,它说

默认情况下,log4jdsl假设您想要使用PatternLayout。 但是,还有其他可用布局,包括:

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

在我看来,xml和html的快捷方式不起作用。

这是一个bug。我已将其修复为2.0.1:

您发现的解决方法是显式使用构造函数而不是DSL快捷方式