Log4j2をslf4jの背後で使用すると、String.format
という構文でログメッセージをフォーマットできますか?Log4j2でフォーマットされたメッセージをslf4jで使用する方法
MessageFactory
はParameterizedMessageFactory
で、{}
のみをサポートしているようです。
Log4j2をslf4jの背後で使用すると、String.format
という構文でログメッセージをフォーマットできますか?Log4j2でフォーマットされたメッセージをslf4jで使用する方法
MessageFactory
はParameterizedMessageFactory
で、{}
のみをサポートしているようです。
Log4j APIの場合と同じように、Logger単位でMessageFactoryを変更することはできません。ただし、log4j2.messageFactoryを使用するMessageFactoryクラス名に設定すると、デフォルトのMessageFactoryを変更できます。システムプロパティとして指定するか、クラスパスにあるlog4j2.component.propertiesという名前のファイルにプロパティを定義することができます。
FormattedMessageFactoryは、String.formatパターン、MessageFormatパターン、ParameterizedMessageパターン(同じメッセージではありません)をサポートしているため、使用することをお勧めします。
ネイティブロガーにアクセスしなければこの操作を行うことはできませんが、最終的には面倒で、あまり役に立たないでしょう。本当にそれをしたい場合は、this answerを参照してください。
ありがとうございます。 Log4j 2.5を使用していて、この機能が2.6で追加されたため、私は自分自身を理解できませんでした(この時点ではリリースされていません)。これは関連する問題ですhttps://issues.apache.org/jira/browse/LOG4J2-1284ヒントをありがとう! – T3rm1