我使用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。有什么建议吗?
编辑:
尝试:
这些都没有奏效 - 我的想法已经不多了。
答案 0 :(得分: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
答案 1 :(得分:-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
希望它可以帮到你,最好的问候。