2


0

バンドルされたlog4j.xmlファイルを認識して使用するために.jarを取得する方法は?

私はantでプロジェクトをビルドしていますが、ビルド中に log4j.xml`ファイルを直接 .jar`にバンドルして配布を簡単にしたいと思います。 ファイルを `.jar`に追加することに成功しましたが、認識されていないようです。

ファイルが `log4j`によって認識され、使用されるようにするために何をする必要がありますか? 私はJavaが初めてなので、可能な場合は例を使用して、明確な説明があれば素晴らしいと思います。

2 Answer


1


これは何とか機能します。

static // loads before anything else can
{
   /*
    * If log4j.configuration system property isn't set,
    * then assume I'm inside a jar and configure
    * log4j using the config file that shipped in the jar.
    */
   if (System.getProperty("log4j.configuration") == null)
   {
      URL url = ClassLoader.getSystemResource("log4j.xml");
      DOMConfigurator.configure(url);
   }
}


0


アプリケーションはどのように呼び出されますか?

JARがクラスパスにある限り、それに含まれるファイルもクラスパスにあります。 言い換えれば、 some.jar!log4j.xml`を見つけるのにlog4jに問題はないはずです。* some * some.jar`がクラスパス上にある場合。

クラスパス上の他の場所から取得されている他のlog4j構成ファイルはありますか? アプリケーションの起動に `-Dlog4j.debug`を追加すると、log4jが使用されている設定ファイルに関するデバッグ情報を出力できます。 別のJARにバンドルされている別の構成ファイルが最初に見つかっている可能性があります。