将log4.properties类路径放入的问题

我在将log4j.properties文件放在classpath上时遇到了一些问题。 我可以在开发时使用它(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} 

不要将log4j.properties本身放在类路径中,而是包含该文件的目录。

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

还有一种方法: -Dlog4j.configuration=file:"./log4j.properties"

我知道有三种方法。

  1. log4j.properties添加到app.jar
  2. log4j.properties放到“文件夹”(JAR所在的位置)并将类路径更改为.lib/log4j-1.2.15.jar
  3. 例如,将log4j.properties放到名为“conf”的文件夹中,并将类路径更改为./conf/

我试过了,它有效。

log4j.properties添加到app.jar

我尝试了Jesper的答案,起初它没有用。 然后我尝试了

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

之后它就起作用了。

尝试执行:

javar -jar -Dlog4j.configuration = file:“./ log4j.properties”app.jar