2016-11-11 15 views
1

マルチテナントアプリケーションであり、多数のログを生成します。log4j変換パターンでJavaオブジェクトを使用することはできますか?

個々のログステートメントにテナント情報が必要です。 私はスレッドのコンテキストにテナント情報を持っています。

log4jを設定して、デフォルトでログステートメントにテナント情報を追加する方法を教えてください。

私が見た変換パターンは、%d [%t]%-5p%c - %m%nのようなlog4jメッセージのパターンを示しています。 それは役に立たず、スレッドコンテキストを印刷できませんでした。

と言ってください。CurrentThread.getTenantName()は私に現在のテナントを与え、どのようにそれをlog4jに追加できるかを示します。

のlog4jで

答えて

2

、パターンは、あなたがそれをオーバーライドすることで、独自のパーサーを書いて、あなたのケースで私は、「i」がテナントIDを表します%のようなカスタムリテラル解析することができますPatternParser

によって解析されました。

カスタムリテラルとパーサーの作成については、下記のブログを参照してください。 http://fw-geekycoder.blogspot.in/2010/07/creating-log4j-custom-patternlayout.html

関連する問題