grails log4j无法处理自定义appender

时间:2014-07-22 00:38:44

标签: grails log4j

我正在尝试将“info and above level”日志记录从grails.app.controllers和grails.app.services记录到此appender“appLog”中。从文档和很多谷歌搜索和当然堆栈溢出。我明白我所需要的只是我的追加器和记录器信息。 但这对我来说永远不会有用,所以我在下面添加了根块,并将每个日志路由到我的appender,并且我还将我的可加性设置为false,这样它就不会拉出任何继承的日志。 我的要求非常简单,但我无法让它发挥作用。我使用的是grails 2.4.1。

有人可以说明这里出了什么问题吗?

以下是我的配置:

Log4j:main{
    appender name: "appLog",
        new org.apache.log4j.DailyRollingFileAppender(
            threshold: org.apache.log4j.Level.INFO,
            datePattern: "'.'yyyy-MM-dd",
            file: log4jFileName,
            layout: pattern(conversionPattern: '[%d{yyyy-MM-dd hh:mm:ss.SSS}] %p %c{5} %m%n')
        )

    info additivity: false, appLog: "grails.app.services.xxxService"

    root {
        debug 'appLog'
        additivity = false 
    }

}

1 个答案:

答案 0 :(得分:1)

我在这里看到的一些错误:

  1. 您的name: "appLog"部分应位于DailyRollingFileAppender构造函数内。
  2. 你错过了一个appenders阻止。
  3. 尝试将配置更改为:

    log4j = {
        appenders {
            appender new org.apache.log4j.DailyRollingFileAppender(
                name: "appLog",
                threshold: org.apache.log4j.Level.INFO,
                datePattern: "'.'yyyy-MM-dd",
                file: log4jFileName,
                layout: pattern(conversionPattern: '[%d{yyyy-MM-dd hh:mm:ss.SSS}] %p %c{5} %m%n')
            )
        }
    
        info additivity: false,
             appLog: "grails.app.services.xxxService"
    
        root {
            debug 'appLog'
        }
    }