我在将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}
答案 0 :(得分:17)
另一种方法:
-Dlog4j.configuration=file:"./log4j.properties"
答案 1 :(得分:12)
我知道有三种方法。
log4j.properties
添加到app.jar
log4j.properties
放入“文件夹”(JAR所在的位置),并将类路径更改为.lib/log4j-1.2.15.jar
。log4j.properties
放到名为“conf”的文件夹中,并将类路径更改为./conf/
。我试过,它有效。
答案 2 :(得分:11)
不要将log4j.properties
本身放在类路径中,而是放在包含该文件的目录中。
Class-Path: lib lib/log4j-1.2.15.jar
答案 3 :(得分:1)
将log4j.properties
添加到app.jar
。
答案 4 :(得分:0)
我尝试了Jesper的答案,起初它没有用。然后我尝试了
#wrapper{width:auto; display:inline-block;}
之后它就起作用了。
答案 5 :(得分:-1)
尝试执行:
javar -jar -Dlog4j.configuration = file:“./ log4j.properties”app.jar