1
ルートロガーは同期ロガー(INFO
レベル)に設定されています。私はまた、いくつかの非同期ロガーを持っています。非同期ロガーの1つは、カスタマイズされた上位ログレベルTOAST
(789)で構成されています。これはレベルTRACE
(600)より高いです。log4j2のカスタムログレベルの問題
これを行う理由は、非同期ロガーとそれ自身のアペンダーを介してログに記録される特別なイベントに使用できるログレベルを持つためです。
TOAST
イベントを同期型ルートロガーまたはその他のロガーに送信したくないのですが、非同期TOAST
ロガーとそれに対応するアペンダーだけが可能ですか?
<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="120" packages=“com.pack.toast”>
<CustomLevels>
<CustomLevel name=“TOAST” intLevel=“789” />
</CustomLevels>
<Appenders>
<RollingFile fileName="${sys:catalina.base}/logs/packiu.log"
append="true" name="DRFILE"
filePattern="${sys:catalina.base}/logs/packiu-%d{yyyy-MM-dd}-%i.log">
<PatternLayout>
<Pattern>%d [%t] %c %M - %p: %m%n</Pattern>
</PatternLayout>
<Policies>
<OnStartupTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
<DefaultRolloverStrategy max="30" />
</RollingFile>
<RollingFile name="RollingFile" fileName="/Users/toasty/logs/roll_file_app.log"
filePattern="logs/app-%d{MM-dd-yyyy}.log.gz" immediateFlush="true" >
<PatternLayout>
<pattern>%m%n</pattern>
</PatternLayout>
<TimeBasedTriggeringPolicy />
</RollingFile>
<Rewrite name="Rewrite" ignoreExceptions = "true" >
<ToastAppenderPolicy toastNeeded="true">
</ToastAppenderPolicy>
<AppenderRef ref="RollingFile"/>
</Rewrite>
</Appenders>
<Loggers>
<Logger name="net.rubyeye" level="off" />
<Logger name="com.google.code" level="off" />
<AsyncLogger name="com.pack.toast.ToastLoggerImpl" level=“TOAST” includeLocation="true">
<AppenderRef ref="Rewrite" />
</AsyncLogger>
<Root level="info">
<AppenderRef ref="DRFILE" />
</Root>
</Loggers>
</Configuration>
情報@ D.Bに感謝します。名前の付いたロガーを正確に説明した通りに実行しましたが、ログメッセージはロガーの出力で残っていますが、残念ながら..(同期ルートと非同期名前付きロガーとも)。次に、SYNCロガーに出力される出力のサンプルを示します( '2017-04-03 23:04:42,534 [http-nio-8443-exec-1] TOAST_LOGGER log-INFO:blah')。何かご意見は?このアプローチを有効にすることができれば、カスタムログレベルなしでもうまくいきます。ありがとうございます – user46743
私はそれが可能性が高いと思うadditivity。 log4j2のドキュメントの[additivity](https://logging.apache.org/log4j/2.x/manual/configuration.html#Additivity)セクションを参照し、適切なロガーでadditivityをfalseに設定してください。私は、トーストロガーの偽に設定することは十分だと思っています。「イベントが追加機能をfalseに設定してロガーに到達すると、イベントは加算値の設定に関係なく、親ロガーのいずれにも渡されません" –
ありがとう@ D.B。加法性が、親に中継される値の問題を修正したように見える。 – user46743