1

DOMConfigurator.configureAndWatch()関数を使用して、実行時にlog4j構成をオーバーライドしたいと思います。ファイルパラメータの文字列名がハードコーディングされている場合に機能します。例えば ​​:DOMConfigurator.configureAndWatch("C:/some/path/log4j.xml");

しかし、私のlog4j.xmlはEARファイル(libディレクトリのJAR)にあり、実行時にどのようにアクセスできますか?

テストしましDOMConfigurator.configureAndWatch("log4j.xml");たが、Glassfishが${GLASSFISH_HOME}/glassfish/domains/domain1/config古いlog4j.xmlファイルのある場所からファイルを検索してオーバーライドしようとしているようです...実際には、同じファイルからコードをロード、リセット、およびリロードします...

EAR内にlog4j.xmlをロードする方法を探しています

アイデアをありがとう

4

1 に答える 1

2

getClass().getResourceAsStream("/log4j.xml")JAR / EARのクラスを呼び出して、JAR/EARlog4j.xmlのルートにあるファイルを読み取ります。次に、結果InputStreamをに渡しますDOMConfigurator.doConfigure(InputStream, LoggerRepository)

または、を呼び出すこともできますDOMConfigurator。。、ここで、JAR/EAR内のオブジェクトを返します。configure(getClass()getResource("/log4j.xml"))getClass()Class

于 2012-12-03T18:11:03.120 に答える