10

私のJavaSwingアプリケーションでは、アプリケーションのパッケージに格納されているプロパティファイルからlog4jプロパティをロードし、そのプロパティファイルを次のようにロードします。

try {                            
     PropertyConfigurator.configure("conf/log4j.properties");
     logger.info("Starting the system.");                           

} catch (Exception e) {
     e.printStackTrace();

}

次に、アプリケーションの起動時に次のエラーが発生します。

log4j:ERROR Could not read configuration file [conf/log4j.properties].
java.io.FileNotFoundException: conf/log4j.properties (No such file or directory)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:138)
        at java.io.FileInputStream.<init>(FileInputStream.java:97)
        at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:297)
        at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:315)
        at com.bio.ofm.mnu.views.SplashScreen$1.run(SplashScreen.java:70)
        at java.lang.Thread.run(Thread.java:722)
log4j:ERROR Ignoring configuration file [conf/log4j.properties].
log4j:WARN No appenders could be found for logger (com.bio.ofm.mnu.views.SplashScreen).
log4j:WARN Please initialize the log4j system properly.

プロパティファイルをロードするこの方法は間違っていますか?助けてください。

.jarファイルを作成し、そのjarを使用してアプリケーションを実行します**

4

3 に答える 3

20

confがソースフォルダの場合、次を使用できます。

PropertyConfigurator.configure("classpath:conf/log4j.properties");

それ以外の場合は、これを試すことができます:

PropertyConfigurator.configure(this.getClass().getClassLoader().getResource("conf/log4j.properties"));
于 2012-05-24T03:04:47.420 に答える
3

LogManager自動的にクラスは、log4jクラスのロードに使用されるファイルを検索しますlog4j.properties。バージョン1.2.6までは、log4jはクラスパス内のファイルのみを検索していました。バージョン1.2.7以降、log4jはクラスパスとの両方を検索します。log4j.xmlclasspathlog4j.propertieslog4j.propertieslog4j.xml

log4jファイルをデフォルトのパッケージに入れるだけです。また、ファイルがのディレクトリにあることを確認する必要があります.class

于 2012-05-24T04:03:50.777 に答える
1

私はこの種のもののためにレイチェルJavaライブラリhttp://rachel.sourceforge.net/をたくさん使用します

libをダウンロードして、クラスパスに追加します。次に、このように使用して、JARファイル/パッケージから任意のファイルをロードできます。また、JNLPでデプロイされたアプリケーションを使用する場合にも機能します。彼らはあなたのファイルをロードするための最良の方法を読むための良いチュートリアルをたくさん持っています。私は通常、それらを入力ストリームとしてロードするのが好きです。

于 2012-05-24T04:49:07.927 に答える