私は私の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ファイルを持っています。
。
おそらく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'のようになります。 –