2016-08-06 2 views
3

私は、コードの束を継承し、私は、Tomcatのログで、それはませアペンダをロガーのために見つかりませんでした(org.springframework.web.context.ContextLoader)

のlog4jを言うことに気づい:いいえアペンダはなりませんでしたWARNロガー (org.springframework.web.context.ContextLoader)で見つかりました。 log4j:WARNは、log4jシステムを適切に初期化してください。 log4j:WARN詳細は http://logging.apache.org/log4j/1.2/faq.html#noconfigを参照してください。

faqリンクには、デフォルトの構成ファイルlog4j.propertiesとlog4j.xmlが見つからず、アプリケーションが明示的な構成を実行していないときに発生することが記載されています。

どのようにこれを修正するために正確に把握できますか。 xmlファイルの内容は次のとおりです。だから私はlog4j.xmlがなく、その代わりにそれぞれの環境ごとに1つがあるので、私はそれを推測しています。それが問題だとすれば、私は物事を正しく構成する方法を教えてください。

+0

に従って、実行時にenvironmentに正しい値を割り当てる方法について'environment'の値は(おそらく' 'dev'や' prod'のように、tomcatの下にあるすべてのファイルの "environment"をテキスト検索してみるか、 'ps'情報を見て)、' log4j-dev.xml'(またはその他実際に解決される環境によって異なります)を、デプロイされたWebアプリケーションの 'WEB-INF/classes'ディレクトリにコピーします。 – heenenee

+3

プロパティ '$ {environment}'は存在しますか?あなたは[mcve]を作ってSpringの設定を投稿できますか? – Tunaki

答えて

0
<bean id="log4jInitialization" 
     class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> 
     <property name="targetClass" value="org.springframework.util.Log4jConfigurer" /> 
     <property name="targetMethod" value="initLogging" /> 
     <property name="arguments"> 
      <list> 
       <value>classpath:log4j-${environment}.properties</value> 
      </list> 
     </property> 
    </bean> 

少数集団ソリューション -

  1. Beanを定義する際、${environment}の値が(envを想定)フェッチされる場所からいくつかのプロパティファイルが存在しなければなりません。その値をファイル名に追加することに注意する必要があります。あなたのプロジェクトリソースの下に存在する必要があります。あなたの場合、log4j-env.propertiesという名前のファイル。あなたはweb.xmlであなたのLog4jのリスナーを設定でき

    <property name="arguments"> 
        <list> 
         <value>#{environment + '/log4j.properties'}</value> 
        </list> 
    </property> 
    
  2. - として代わりに値を変更するように

  3. は、別のディレクトリの下にそれらを分類しながら、さまざまな環境のログの異なる方法を使用しての方法を勧めますspring-context.xmlの代わりに、Springが起動する前に起動しています。など -

    <context-param> 
        <param-name>log4jConfigLocation</param-name> 
        <param-value>/${environment}/log4j.properties</param-value> 
    </context-param> 
    
    <listener> 
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
    </listener> 
    

ソースからInitializing Log4J with Spring?

注 - かを調べるHow to replace a value in web.xml with a Maven property?

関連する問題