2012-05-23 4 views
2

Всякий раз, когда я развертывание приложений производства, который имеет ошибку с externalized configuration я получаю следующее сообщение в журнале Tomcat:Grails внешней конфигурации входа

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.

Есть ли способ предварительной инициализации log4j для захвата этих сообщений до того, как будет выполнена стандартная инициализация Grails log4j?

+0

Вы нажимаете это на тот же день, что и я. У меня пока нет ответа, но если я найду его, я отправлю его. Это отличное диагностическое копание, которое вы там делали. Благодарю. Могу ли я предположить, что вы делаете это с Grails 2.0.3? – mgkimsal

+0

@mgkimsal Да, я испытываю это с Grails 2.0.3. – jamesallman

+0

У меня сейчас немного другое, но все еще разбито. Настройка Spring Security UI ... ... По окончании конфигурирования Spring Security UI Настройка Spring Security Core, ... ... закончили настройку Spring Security Core, 23 мая 2012 5:21:07 PMorg. apache.catalina.core.StandardContext start SEVERE: Ошибка listenerStart без ничего в файле stacktrace.log. :/ BTW, просто попробовал grails 2.0.4, такое же поведение. В 2.0.4 изменениях в настройках не было ничего, но я думал, что все равно попытаюсь. – mgkimsal

ответ

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 или внешнего файла конфигурации.

Мой внешний файл конфигурации имел неправильные разрешения и не мог быть загружен.

+0

Что такое «правильные» разрешения? Mine читаются - * свойства * файлы, похоже, обрабатываются, но не * groovy * config файлы. – mgkimsal

+0

@mgkimsal В моем случае файл конфигурации изменил владельца из Tomcat userid на мой userid, когда я скопировал файл. Поскольку разрешения были rwx ------, он даже не мог открыть файл. – jamesallman

0

This blogger рекомендует проверить web.xml, чтобы убедиться, что прослушиватель log4j указан первым. Grails генерирует web.xml во время процесса создания WAR, но, возможно, стоит посмотреть.

Смежные вопросы