我有以下log4j配置:
log4j = {
appenders {
appender new DailyRollingFileAppender(name: 'dailyAppender', ...)
}
root {
error 'dailyAppender'
}
info 'dailyAppender' : 'com.intelli', 'grails.app'
}
" grails.app" logger用于grails artefacts(服务,控制器,..),而" com.intelli"用于使用LogFactory类初始化的其他自定义记录器(如/ src / groovy / **,...)。
现在的问题是,使用此配置自定义记录器(' com.intelli')未记录任何内容。然而,grails控制器和服务正在记录好!
当我更改记录器的顺序时:
log4j = {
...
info 'dailyAppender' : 'grails.app', 'com.intelli'
}
自定义记录器记录正常,但是 grails服务和控制器根本没有记录!
答案 0 :(得分:1)
解决方案非常棘手,您需要将记录器括在列表(“[]”)括号中:
log4j = {
appenders {
appender new DailyRollingFileAppender(name: 'dailyAppender', ...)
}
root {
error 'dailyAppender', additivity: false
}
info 'dailyAppender' : ['com.intelli', 'grails.app']
}
使用此配置,一切都按原样记录。
这不是问题的一部分,但为了防止双重记录,我们需要将可加性设置为false:
log4j = {
appenders {
appender new DailyRollingFileAppender(name: 'dailyAppender', ...)
}
root {
error 'dailyAppender'
}
info 'dailyAppender' : ['com.intelli', 'grails.app'], additivity: false
}