3

Logback XML 構成の繰り返し部分を除外してパラメータ化する方法はありますか? ファイル名を除いて、基本的に同じように構成された多くの異なるローリングファイルアペンダーがあります。私は、スタックのさまざまな部分をさまざまなファイルにリダイレクトできるように、「加法性」をオフにした多数のロガーと組み合わせて使用​​しています。これにより、多くのほぼ同一のセグメントで構成される面倒で長い構成ファイルが作成されます。

以前にLogback の<include>機能を使用したことがありますが、含まれている構成をパラメーター化できないため、この再利用の問題には対処していません。このような機能は、次のようなものになると思います。

<include resource="file-appender.xml">
    <property name="filePath" value="/where/logs/go" />
    <property name="baseLogger" value="com.mycompany.thatpartofthestack" />
</include>

しかし、私が理解している限り、それは希望的観測です。テンプレート、マクロ、関数などを介して Logback の構成を分解する別の方法はありますか?

4

1 に答える 1

2

ローカルスコープやコンテキストスコープで変数置換を使用してみてください。

logback.propertiesおそらく最も簡単な方法は、各アプリケーションにバンドルされているなど、リソースファイルで変数を定義することです。さらに、各アプリケーションはlogback.xmlファイルのインポートを実行しますlogback.properties

<configuration debug="true">
  <property resource="logback.properties" />
  <!-- set root level as given by the value of the root.level variable -->
  <!-- if root.level is undefined default to DEBUG -->
  <root level="${root.level:-DEBUG}"/>
</configuration>

webapp-AでルートレベルをWARNに設定する場合は、webapp-Aにlogback.propertiesバンドルされているファイルに次の行を追加するだけです。

root.level=WARN

logback.xmlさまざまなアプリケーションに共通のアーティファクトにリソースとしてバンドルできます。

于 2012-11-09T08:54:14.530 に答える