web-dev-qa-db-ja.com

各ログイベントにホスト名/ IPを追加するようにログバックを構成するにはどうすればよいですか?

ロギングにLogbackを使用しています。 Scribeアペンダーは、ログを中央のScribeアグリゲーターにリアルタイムで送信します。しかし、各ログイベントのログにソースマシンのIPを追加する方法がわかりません。集約された中央のScribeログを見ると、どのマシンがログを送信しているかを知ることはほとんど不可能です。したがって、各ログイベントにソースマシンのIPを追加すると便利であり、ログバック構成を介してそれを制御できれば非常に便利です。

12
Nipun Talukdar

ContextNameを介してホスト名をリモートレシーバーに渡すことができます。
すべてのアペンダーのlogback.xmlに以下を追加します。

<contextName>${HOSTNAME}</contextName>

次に、アグリゲーターインスタンスで、パターンに含めることができます。

<pattern>%contextName %d %-5level %logger{35} - %msg %n</pattern>
9
iTake

Logback docs によると、ログにホスト名を追加するためのCanonicalHostNamePropertyDefinerが明示的に追加されました。プロジェクトに定義を追加します。

<define name="hostname" class="ch.qos.logback.core.property.CanonicalHostNamePropertyDefiner"/>

${hostname}としてアクセスします

1
Ron Romero

クライアントサーバープロジェクトで作業している場合は、slf4j/logbackのMDC機能を使用できます 完全なドキュメントはこちら この場合、どのログが対象であるかを識別できる、適切に構造化されたログファイルを作成できます。どのクライアント

お役に立てれば!

1
Mr.Q