2
我在grails 2.3.4中使用slf4j「DailyRollingFileAppender」。grails中的log4j:在appender配置文件中使用變量時顯示錯誤
當我試圖使用一個變量作爲「文件」參數的一部分時,grails總是在應用程序啓動時打印一些錯誤日誌。
但我的應用程序的日誌消息可以按照預期打印到指定的「user-event.log」,儘管grails給了我那些錯誤消息。
下面是我log4j配置:
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,錯誤消息消失。
嗨dmahapatro,非常感謝。你的回答是正確的:),當我使用$ {Holders.config.event.log.dir}時,錯誤消失 –