【问题标题】:grails 2.1.2 log4j configuration strange behaviorgrails 2.1.2 log4j 配置奇怪的行为
【发布时间】:2015-04-28 22:47:31
【问题描述】:

我有以下 log4j 配置:

log4j = {   
    appenders {
        appender new DailyRollingFileAppender(name: 'dailyAppender', ...)
    }

    root {
        error 'dailyAppender'
    }

    info 'dailyAppender' : 'com.intelli', 'grails.app'
}

“grails.app”记录器用于 grails 人工制品(服务、控制器、..),而“com.intelli”用于其他已初始化的自定义记录器(如 /src/groovy/**、...)使用 LogFactory 类。

现在的问题是,使用此配置自定义记录器('com.intelli')没有记录任何内容。但是 grails 控制器和服务的日志记录很好!

当我更改记录器的顺序时:

log4j = {   
    ...

    info 'dailyAppender' : 'grails.app', 'com.intelli'
}

自定义记录器记录正常,但是 grails 服务和控制器根本没有记录

【问题讨论】:

    标签: grails logging configuration log4j


    【解决方案1】:

    解决方案非常棘手,您需要将记录器括在列表 ("[ ]") 括号中:

    log4j = {   
        appenders {
            appender new DailyRollingFileAppender(name: 'dailyAppender', ...)
        }
    
        root {
            error 'dailyAppender', additivity: false
        }
    
        info 'dailyAppender' : ['com.intelli', 'grails.app']
    }
    

    使用此配置,所有内容都按应有的方式记录。

    这不是问题的一部分,但为了防止重复记录,我们需要将 additivity 设置为 false:

    log4j = {   
        appenders {
            appender new DailyRollingFileAppender(name: 'dailyAppender', ...)
        }
    
        root {
            error 'dailyAppender'
        }
    
        info 'dailyAppender' : ['com.intelli', 'grails.app'], additivity: false
    }
    

    【讨论】:

      猜你喜欢
      • 2017-09-24
      • 2010-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      相关资源
      最近更新 更多