Grails外部配置日志记录

时间:2012-05-23 16:24:14

标签: tomcat grails log4j

每当我部署一个出现externalized configuration错误的生产应用程序时,我都会在Tomcat日志中收到以下消息:

log4j:WARN No appenders could be found for logger (org.codehaus.groovy.grails.commons.cfg.ConfigurationHelper)
log4j:WARN Please initialize the log4j system properly.                                                       
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.                           

显然,在正确初始化log4j之前处理外部化配置,因此没有可用于接受来自ConfigurationHelper的消息的appender。

有没有办法在标准Grails log4j初始化发生之前预先初始化log4j以捕获这些消息?

2 个答案:

答案 0 :(得分:5)

我终于可以通过在$CATALINA_BASE\lib\log4j.properties

中创建文件来启用预初始化日志记录
log4j.rootLogger=WARN, CA                                                          
log4j.appender.CA=org.apache.log4j.ConsoleAppender                                  
log4j.appender.CA.layout=org.apache.log4j.PatternLayout                             
log4j.appender.CA.layout.ConversionPattern=%d{MMM dd, yyyy hh:mm:ss aa} %c%n%p: %m%n

这允许将初始消息记录到控制台。在默认的Tomcat配置中,它们将被记录到$CATALINA_BASE\logs\catalina.out文件。

Grails初始化确实使用Config.groovy或外部配置文件中的设置覆盖了这些初始设置。

我的外部配置文件具有不正确的权限,无法加载。

答案 1 :(得分:0)

This blogger建议检查web.xml以确保首先列出log4j侦听器。在WAR创建过程中,Grails会生成web.xml,但值得一看。