12

次のような状況があります。各バッチ ファイルが同じ jar から main() を使用して Java クラスを呼び出す、異なるバッチ ファイルによって起動された 2 つのプログラムを実行できるようにする必要があります。各プログラムに独自のログが必要です。ただし、2 番目のプログラムは最初のプログラムのインストーラーであるため、その場所がまだ存在しない可能性があるため、 -Dlogback.configurationFile=/path/to/config ファイルを指定したくない/簡単に指定できません。

ログバックのドキュメントは解決策を提供しているようですが、それを機能させる方法の例が必要です:

デフォルト構成ファイルの場所をシステム プロパティとして指定する

必要に応じて、logback.configurationFile という名前のシステム プロパティを使用して、デフォルトの構成ファイルの場所を指定できます。このプロパティの値は、URL、クラスパス上のリソース、またはアプリケーション外部のファイルへのパスにすることができます。

java -Dlogback.configurationFile=/path/to/config.xml chapters.configuration.MyApp1

logback.configurationFile がファイル システムではなくクラスパス上のリソースとして定義されている例を教えてもらえますか?

4

4 に答える 4

14

my-logback.xmlクラスパス エントリの 1 つのルートにa を入れて、 を指定するだけ-Dlogback.configurationFile=my-logback.xmlです。内部的にはClassLoader#getResource(String name)、ファイルを取得するために使用される可能性があります。詳細については、このメソッドの JavaDoc を確認してください。

于 2012-10-25T14:21:58.023 に答える