0

我使用 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=...</li>

这些都没有奏效——我的想法已经不多了。

4

2 回答 2

0

假设,log4j.properties位于/user/home运行

java -cp /user/home:. -jar myjar.jar
  • 默认情况下,配置文件的名称已经是log4j.properties.
  • 中指定的文件-Dlog4j.configuration 需要在您的类路径中。

因此,如果您的属性文件是,/user/home/temp-log4j.properties那么您将运行

java -cp /user/home:. -Dlog4j.configuration=temp-log4j.properties -jar myjar.jar
于 2013-06-25T18:27:11.337 回答
-1

我使用这个配置,也许这​​个配置的某些东西可以帮助你,我认为你的问题与路径有关,尝试使用完整路径,如 FILE.file 属性中的那个,这是一个绝对路径

log4j.rootLogger = DEBUG, FILE
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=/home/mtataje/logs/repo.log
log4j.appender.FILE.Threshold=debug
log4j.appender.FILE.Append=true
log4j.appender.FILE.MaxFileSize=1MB
log4j.appender.FILE..MaxBackupIndex=2
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

希望它可以帮助你,最好的问候。

于 2013-06-25T18:24:30.117 回答