2

外部化された構成でエラーが発生した本番アプリケーションをデプロイするたびに、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

標準のGrailslog4j初期化が行われる前に、log4jを事前初期化してこれらのメッセージをキャプチャする方法はありますか?

4

2 に答える 2

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または外部構成ファイルでオーバーライドしました。

外部構成ファイルの権限が正しくなく、ロードできませんでした。

于 2012-05-23T22:06:17.003 に答える
0

このブロガーweb.xmlは、log4jリスナーが最初にリストされていることを確認することをお勧めします。Grailsweb.xmlはWAR作成プロセス中に生成されますが、一見の価値があるかもしれません。

于 2014-03-31T02:45:30.660 に答える