Grails 如何使用';附录参考号';在圣杯2中?

Grails 如何使用';附录参考号';在圣杯2中?,grails,logging,log4j,config,perf4j,Grails,Logging,Log4j,Config,Perf4j,使用Grails config DSL,如何配置appender上的appender ref属性 我试图将log4j.xml从perf4j转换为Grails配置DSL(grails2.x) 在我试图模拟的log4j.xml文件中,有这样一个片段: log4j.xml <appender name="CoalescingStatistics" class="org.perf4j.log4j.AsyncCoalescingStatisticsAppender">

使用Grails config DSL,如何配置appender上的appender ref属性

我试图将log4j.xml从perf4j转换为Grails配置DSL(grails2.x)

在我试图模拟的log4j.xml文件中,有这样一个片段:

log4j.xml

<appender name="CoalescingStatistics"
          class="org.perf4j.log4j.AsyncCoalescingStatisticsAppender">
    <param name="TimeSlice" value="10000"/>
    <appender-ref ref="fileAppender"/>
</appender>
其他详细信息

下面是我模仿的log4j.xml源代码:


我能够用一些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]
}

更优雅的解决方案总是受欢迎的。

我能够通过一些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]
}
更优雅的解决方案总是受欢迎的