grails 2.1.2 log4j 配置奇怪的行为
grails 2.1.2 log4j configuration strange behavior
我有以下 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 class.
初始化
现在的问题是,使用此配置自定义记录器 ('com.intelli') 没有记录任何内容。但是 grails 控制器和服务记录正常!
当我更改记录器的顺序时:
log4j = {
...
info 'dailyAppender' : 'grails.app', 'com.intelli'
}
自定义记录器记录正常,但是 grails 服务和控制器根本没有记录!
解决方案非常棘手,您需要将记录器括在列表 ("[ ]") 括号中:
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
}
我有以下 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 class.
初始化现在的问题是,使用此配置自定义记录器 ('com.intelli') 没有记录任何内容。但是 grails 控制器和服务记录正常!
当我更改记录器的顺序时:
log4j = {
...
info 'dailyAppender' : 'grails.app', 'com.intelli'
}
自定义记录器记录正常,但是 grails 服务和控制器根本没有记录!
解决方案非常棘手,您需要将记录器括在列表 ("[ ]") 括号中:
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
}