grails中的log4j:在appender配置中使用变量时打印错误
我在Grails2.3.4中使用slf4j“DailRollingFileAppender” 当我尝试使用变量作为“file”参数的一部分时,grails总是在应用程序启动时打印一些错误日志 但我的应用程序的日志消息可以按预期打印到指定的“user event.log”中,尽管grails会给我这些错误消息 下面是我的log4j配置:grails中的log4j:在appender配置中使用变量时打印错误,grails,logging,slf4j,Grails,Logging,Slf4j,我在Grails2.3.4中使用slf4j“DailRollingFileAppender” 当我尝试使用变量作为“file”参数的一部分时,grails总是在应用程序启动时打印一些错误日志 但我的应用程序的日志消息可以按预期打印到指定的“user event.log”中,尽管grails会给我这些错误消息 下面是我的log4j配置: log4j = { // Example of changing the log pattern for the default console appe
log4j = {
// Example of changing the log pattern for the default console appender:
appenders {
console name: 'stdout', layout: pattern(conversionPattern: '%c{2} %m%n')
appender new DailyRollingFileAppender(
name: "userEventLog",
file: "${event.log.dir}/user-event.log",
layout: pattern(conversionPattern: '%m%n'),
datePattern: "'.'yyyy_MM_dd",
threshold: org.apache.log4j.Level.INFO
)
}
info userEventLog: "app.bean.log.UserEventLog"
}
“event.log.dir”变量定义如下:
environments {
development {
// event log dir
event.log.dir = "${userHome}/workspace/app/logs/event"
}
production {
// event log dir
event.log.dir = "/opt/www/app/logs/event"
}
}
应用程序启动时grails控制台中打印的错误消息如下:
| Error log4j:ERROR Property missing when configuring log4j: event
| Error log4j:ERROR Property missing when configuring log4j: event
当我用字符串路径替换“${event.log.dir}”变量,例如“/home/app/”并重新启动grails时,错误消息消失。用于读取配置属性。我假设它在设置log4j
时无法读取config属性本身,因为它是config本身的一部分
import grails.util.Holders
...
log4j = {
// Example of changing the log pattern for the default console appender:
appenders {
console name: 'stdout', layout: pattern(conversionPattern: '%c{2} %m%n')
appender new DailyRollingFileAppender(
name: "userEventLog",
file: "${Holders.config.event.log.dir}/user-event.log",
layout: pattern(conversionPattern: '%m%n'),
datePattern: "'.'yyyy_MM_dd",
threshold: org.apache.log4j.Level.INFO
)
}
info userEventLog: "app.bean.log.UserEventLog"
}
你好,德马哈帕特罗,非常感谢。您的答案是正确的:),当我使用${Holders.config.event.log.dir}时,错误消失了