2016-05-03 5 views
0

私はtomcat環境でlog4j2ロガーの適切な(デ)-registrationためlog4j-web依存関係を使用しています:WebLookupをlog4j-webで使うには?

<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-web</artifactId> 
</dependency> 

問題:次のように私はもうWebLookupを使用することはできません。

<RollingRandomAccessFile name="TEST" fileName="${web:rootDir}-${web:majorVersion}-application.log" ..> 

log4j-webの依存関係を除外すると、weblookupは正常に動作します。しかし、私は適切なtomcatログの依存関係を使用する必要があります。

おそらくルックアップが遅すぎて初期化されている可能性があります。 それでは、どうやってweblookupを使用することができますか?

答えて

1

一つの可能​​な解決策:ロガーの初期化の前でフック、およびlog4j2.xmlの設定で使用するマップのparamsを移入:

@SpringBootApplication 
public class App extends SpringBootServletInitializer { 
    @Override 
    public void onStartup(ServletContext servletContext) throws ServletException { 
     MainMapLookup.setMainArguments(new String[] {"thekey", "thevalue"}); 
     super.onStartup(servletContext); 
    } 
} 

使用法:

fileName="${main:thekey}-..."