【发布时间】:2013-06-25 18:15:05
【问题描述】:
我使用 Maven 配置文件构建了一个 jar,并希望将 log4j 输出重定向到一个文件。
这是我的 log4j.properties 文件:
# Root logger option
log4j.rootLogger=DEBUG, file
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=./reporting.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
这是我从 bash 运行的命令:
java -jar -Dlog4j.configuration=~/log4j.properties myjar.jar
尽管如此,所有的日志输出都会输出到标准输出。有什么建议吗?
编辑:
试过了:
- 在jar的根目录下包含properties文件,默认情况下应该在该目录下获取
- 在运行时指定类路径:-cp
- 通过 maven 在清单中添加类路径
- 在运行时指定属性文件:-Dlog4j.properties=
- 在运行时指定单个属性:Dlog4j.rootLogger=DEBUG,F -Dlog4j.appender.F=...
这些都没有奏效 - 我的想法已经不多了。
【问题讨论】:
-
您是否尝试过使用其他路径而不是 ./reporting.log?也许想知道这是否是问题所在?
-
另外一个原因可能是
~/log4j.properties没有扩展为实际路径,请尝试使用绝对路径。 -
你用绝对路径试过了吗?
-
我将属性文件的路径更改为绝对路径以及日志的输出路径 - 运气不好
-
jar 中没有另一个 log4j.properties 文件,是吗?