web-dev-qa-db-ja.com

log4.propertiesをクラスパスに含める必要がありますか?

Log4j.propertiesファイルをクラスパスに配置する際に問題が発生しました。開発中(Eclipse Indigo)では使用できますが、アプリをJARとしてエクスポートすると使用できません。

エクスポートされたJARのMANIFEST.MFファイルを手動で作成しました。

Manifest-Version: 1.0
Main-Class: main.Program
Class-Path: lib/log4j.properties lib/log4j-1.2.15.jar

そして、このファイル編成にJARを配置します。

folder
  |-------- app.jar
  |-------- lib
             |--------- log4j.properties
             |--------- log4j-1.2.15.jar

App.jarを実行しようとすると、log4j.jarは見つかりますが、log4j.propertiesは見つかりません。

log4j:WARN No appenders could be found for logger (main.Program).
log4j:WARN Please initialize the log4j system properly.

私のlog4j.propertiesファイルは次のようになります:

log4j.rootLogger=INFO, stdout, file

PATTERN=[%d] [%p] [%c{1}]: %m%n

log4j.appender.stdout=org.Apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.Apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=${PATTERN}

log4j.appender.file=org.Apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.File=${logger_file_path}
log4j.appender.file.layout=org.Apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=${PATTERN}
9
rnunes

log4j.properties自体をクラスパスに配置するのではなく、そのファイルを含むディレクトリに配置します。

Class-Path: lib lib/log4j-1.2.15.jar
11
Jesper

これを行うもう1つの方法:-Dlog4j.configuration=file:"./log4j.properties"

17
okwap

私が知る3つの方法があります。

  1. log4j.propertiesapp.jarに追加します
  2. log4j.propertiesを「フォルダー」(JARが存在する場所)に置き、クラスパスを.lib/log4j-1.2.15.jarに変更します。
  3. たとえば、log4j.propertiesを「conf」という名前のフォルダに配置し、クラスパスを./conf/に変更します。

私は試しました、それは動作します。

12
钮玉晓

追加 log4j.propertiesからapp.jar

1
rodrigoap

ジェスパーの答えを試してみましたが、最初はうまくいきませんでした。それから私は

Class-Path: lib/ lib/log4j-1.2.15.jar

そしてそれはその後働いた。

0
emi-le