使用Grails配置DSL,如何在附加程序上配置 appender-ref 属性?
我正在尝试将perf4j的log4j.xml转换为Grails配置DSL(Grails 2.x)。
在我要模仿的log4j.xml文件中,有一个类似以下的段:
log4j.xml
<appender name="CoalescingStatistics"
class="org.perf4j.log4j.AsyncCoalescingStatisticsAppender">
<param name="TimeSlice" value="10000"/>
<appender-ref ref="fileAppender"/>
</appender>
我想在Grails中模仿此添加程序的配置,但无法弄清楚
<appender-ref>
标记。这是我最近的尝试:
log4j = {
appenders {
//main appender for the app
rollingFile ...
//perf4j coalescing stats appender
appender new AsyncCoalescingStatisticsAppender(name: "coalescingStatsAppender", timeSlice: 10000)
//perf4j stats file appender
rollingFile name: "perfLogFileAppender", file: "perfStats.log", layout: new PatternLayout("%m%n")
}
root {
error 'stdout', 'rollingFileAppender'
}
info additivity: false, coalescingStatsAppender: [StopWatch.DEFAULT_LOGGER_NAME]
}
其他详细信息
这是我在模仿的源log4j.xml:
https://web.archive.org/web/20150508124059/http://perf4j.codehaus.org/devguide.html#Using_the_log4j_Appenders_to_Generate_Real-Time_Performance_Information
最佳答案
我能够使它与Groovy魔术配合使用:
log4j = {
appenders {
//...regular appenders
//perf4j appenders
Appender perfLogFileAppender = delegate.rollingFile name: "perfLogFileAppender", file: "perfStats.log", layout: new PatternLayout("%m%n")
def statsAppender = new AsyncCoalescingStatisticsAppender(name: "coalescingStatsAppender", timeSlice:
10000)
statsAppender.addAppender(perfLogFileAppender)
appender statsAppender
}
root {
error 'stdout', 'rollingFileAppender'
}
info additivity: false, coalescingStatsAppender: [StopWatch.DEFAULT_LOGGER_NAME]
}
始终欢迎提供更优雅的解决方案。
关于grails - 如何在grails 2中使用 'appender-ref'设置log4j附加程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33832911/