0
私はlog4j2
アペンダーを使用して、Marker
を使用してウェブとXMLコンテンツを特定のファイルに記録します。次のようにlog4j2を使用してログ・ステートメントを特定のファイルにルーティングする方法は?
<Appenders>
<RollingRandomAccessFile name="WEB" fileName="web.log">
<Filters>
<ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
<MarkerFilter marker="WEB" onMatch="ACCEPT" onMismatch="DENY" />
</Filters>
</RollingRandomAccessFile>
</Appenders>
私は正常に私のコードでそれを使用することができます。
logger.info(MarkerFactory.getMarker("WEB"), "myinfo");
は、さらに私は、コンテンツがコンソールをSYSOUTに印刷することにしたい。
<Appenders>
<Console name="CONSOLE" target="SYSTEM_OUT">
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY" />
</Console>
<RollingRandomAccessFile name="WEB" .../>
</Appenders>
<Loggers>
<Root level="all">
<AppenderRef ref="CONSOLE" />
<AppenderRef ref="WEB" />
</Root>
</Loggers>
しかし:今、次のクラスDEBUG
モードでログインする必要がありますが、ファイルはweb.log
に限られ、コンソールにも表示されます。
<Loggers>
<logger name="org.springframework.web.filter.CommonsRequestLoggingFilter"
level="DEBUG">
<AppenderRef ref="WEB" />
</logger>
</Loggers>
結果:
1)フィルターの内容がCONSOLE
にファイルに出力されないが:2つの問題点があります。私は両方にログインしたい。
2)マーカーなしでログに記録される通常の情報ログ(logger.info("test")
など)も、WEB.logファイルに記録されます。私はこれを防止したいと思います。
どこが誤っていますか?
WEBマーカーステートメントweb.logにのみ。しかし、私は 'CommonsRequestLoggingFilter'出力をコンソール+ WEBマーカーの両方に記録したいと思います。 – membersound
ありがとう、ポイント2に関して:私は* root logger *に常にWEBにログを記録したくありません。私はCommonsRequestLoggingFilterがWEBにログを記録するだけです。他のすべてのルートログは変更しないでください。 – membersound
ウェブマーカーがない場合はどうなりますか?コンソールにログするだけですか? – Ishnark