log4.properties 应该在类路径上吗?

2022-09-05 00:11:32

我在将log4j.properties文件放在类路径上时遇到了一些问题。我可以在开发(Eclipse Indigo)时使用它,但是,当我将应用程序导出为JAR时,我不能。

我手工制作了一个清单。导出的 JAR 的 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}

答案 1

还有一种方法可以做到这一点:-Dlog4j.configuration=file:"./log4j.properties"


答案 2

我知道有三种方式。

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

我试过了,它有效。


推荐