2017-06-11 30 views
1

私は私のWebアプリがログファイルに書き込まことがわかり、このlog4j2 ERROR認識できない書式指定子[T]

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration monitorInterval="30" status="trace" strict="true"> 
     <Properties> 
       <Property name="logdir">/path/to/log/dir</Property> 
       <Property name="filename">somelogfile.log</Property> 
     </Properties> 
     <Loggers> 
       <Logger name="some.package.name" level="debug" additivity="false"> 
         <AppenderRef ref="RollingFile"/> 
       </Logger> 
     </Loggers> 
     <Appenders> 
       <RollingFile name="RollingFile" fileName="${logdir}/${filename}" filePattern="${logdir}/${filename}.%d{yyyyMMdd}.gz"> 
         <PatternLayout> 
           <Pattern>%d %p %c{1.} [%t] %m%n</Pattern> 
         </PatternLayout> 
         <Policies> 
           <TimeBasedTriggeringPolicy interval="6" modulate="true"/> 
         </Policies> 
       </RollingFile> 
     </Appenders> 
</Configuration> 

のように見えるのTomcat 8上で動作しているWebアプリケーションのためのlog4j2設定ファイルを持っていますが、スレッド名のため、私が持っている%tのパターンが解決するように見えるので、私が得る私が始めた私はこれをトラブルシューティングするために%Tの代わりにスレッド名の

を取得し、この

2017-06-10 20:34:51,696 DEBUG s.p.n.SomeServlet [%t] some log message 

お知らせのようなステートメントをログに記録しませんTomcatのオプション

-Dorg.apache.logging.log4j.simplelog.StatusLogger.level=TRACE 

を使用して、私は、Webアプリケーションが展開されるとlog4j2が初期化されたときに次のメッセージがcatalina.outで印刷ご覧ください。

ERROR StatusLogger Unrecognized format specifier [thread] 
ERROR StatusLogger Unrecognized conversion specifier [thread] starting at position 25 in conversion pattern 
2017-06-10 19:51:14,277 localhost-startStop-1 DEBUG PluginManager 'Converter' found 41 plugins 
2017-06-10 19:51:14,609 localhost-startStop-1 ERROR Unrecognized format specifier [t] 
2017-06-10 19:51:14,614 localhost-startStop-1 ERROR Unrecognized conversion specifier [t] starting at position 6 in conversion pattern. 

私のWebアプリは、他

WEB-INF/lib/log4j-api-2.8.2.jar 
WEB-INF/lib/log4j-core-2.8.2.jar 
WEB-INF/lib/log4j-web-2.8.2.jar 

% tの代わりに、実際のスレッド名を印刷する原因になっているかわからない中で、次のjarファイルを持っています。

+0

おそらくLog4J2のバグhttps://issues.apache.org/jira/browse/LOG4J2-954。しかし、私はあなたの問題を再現することはできませんが、log4j 2.8.2を使用しています。結果は '2017-06-12 16:22:29,050 INFO s.p.name [main] some log message'のようになります。 –

答えて

3

似たようなことは、クラスパスに複数のバージョンのLog4j2が含まれていたときだけでした。私は根本的な原因を見つけるために調査しなかった。

+0

maven-shade-pluginを使用してfat jarファイルを作成する場合、maven-shaded-log4j-transformerプラグインが役に立ちます:https://github.com/edwgiz/maven-shaded-log4j-transformer – Esk

0

私はlog4j2の複数のバージョンを実行していたときにこれも経験しました。あなたの依存関係のいずれかが重複したjarファイルを引っ張るかどうかをチェックしてください。クラスローダーで悪夢になれる!

関連する問題