grails - 如何在grails 2中使用 'appender-ref'设置log4j附加程序?

标签 grails logging log4j config perf4j

使用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/

相关文章:

java - log4j:特定于包的日志记录

hibernate - 如何配置 Grails 3.1.1 以使用 Hibernate 5

grails - 在Grails中更改H2数据库管理员用户和密码

sql-server - 此后,在SQL Server分析 session 中,将已编译的准备好的语句与exec进行协调

c++ - Boost 日志不显示自定义时间戳

java - 文件名在 log4j 中滚动文件

java - 捕获 javax.net.debug 到文件

grails - 将动态查找器与对象ID列表一起使用

python - 在 Python 3 中记录到多个文件

logging - 如何配置 ILogger 以将日志输出到特定文件?