繁体   English   中英

无法将log4j输出到文件

[英]Trouble getting log4j to output to file

我使用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

尽管如此,所有日志记录输出都将输出到stdout。 有什么建议么?

编辑:

尝试过:

  • 在jar的根目录中包含属性文件,默认情况下应在该目录中将其选中
  • 在运行时指定类路径:-cp
  • 通过Maven在清单中添加类路径
  • 在运行时指定属性文件:-Dlog4j.properties =
  • 在运行时指定单个属性:Dlog4j.rootLogger = DEBUG,F -Dlog4j.appender.F =…

这些都没有奏效-我的想法不多了。

假设log4j.properties位于/user/home run

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

因此,如果您的属性文件是/user/home/temp-log4j.properties则可以运行

java -cp /user/home:. -Dlog4j.configuration=temp-log4j.properties -jar myjar.jar

我使用这种配置,也许这​​种配置可以为您提供帮助,我认为您的问题与路径有关,请尝试使用完整路径,例如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

希望它能对您有所帮助,最好的问候。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM