11

我在将 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}
4

6 回答 6

18

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

于 2013-11-22T09:20:34.243 回答
12

我知道三种方法。

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

我试过了,它有效。

于 2012-10-25T06:41:54.477 回答
11

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

Class-Path: lib lib/log4j-1.2.15.jar
于 2012-01-17T15:53:34.040 回答
1

添加log4j.propertiesapp.jar.

于 2012-01-17T16:09:25.143 回答
0

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

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

在那之后它起作用了。

于 2016-02-24T07:43:12.523 回答
-1

尝试执行:

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

于 2015-02-23T18:38:34.337 回答