设置log4j配置文件时出错

时间:2016-04-12 21:04:45

标签: java log4j

我必须在这里做些蠢事:

C:\tmp\log>java -jar logorrhea.jar -Dlog4j.configurationFile=c:/tmp/log/mblog4j.properties

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.

我按照https://logging.apache.org/log4j/2.x/manual/configuration.html中的说明设置了log4j.configurationFile系统属性,但似乎无效。 (并且有一个名为c:/tmp/log/mblog4j.properties的文件)

可能出现什么问题?

我的mblog4j.properties文件如下所示:

# Setup loggers: default threshold = ERROR, but special stuff = INFO
log4j.rootLogger=ERROR,FILE
log4j.logger.com.example.mypackage=INFO,FILE

log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=c:/tmp/log/mb4j.log
log4j.appender.FILE.ImmediateFlush=true
# Set the append to false, overwrite
log4j.appender.FILE.Append=false
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern= %-4r [%t] %-5p %c %x - %m%n

1 个答案:

答案 0 :(得分:1)

问题是-Dlog4j.configurationFile需要之前 -jar logorrhea.jar(并且file:前缀需要在那里,如stdunbar所说)

正确的语法:

java -Dlog4j.configurationFile=file:c:/tmp/log/mblog4j.properties -jar logorrhea.jar 

此外,log4j 2配置与log4j 1.x完全不同;我不得不将我的日志配置文件修改为:

# Setup loggers: default threshold = ERROR, but special stuff = ALL
name = PropertiesConfig

property.filename = c:/tmp/log/mb4j.log

appenders = FILE

appender.FILE.type=File
appender.FILE.name=File
appender.FILE.append=false
appender.FILE.immediateFlush=true
appender.FILE.fileName=${filename}
appender.FILE.layout.type=PatternLayout
appender.FILE.layout.pattern= %-4r [%t] %-5p %c %x - %m%n

loggers = mb

logger.mb.name = com.example.mypackage
logger.mb.level = all
logger.mb.appenderRefs = FILE
logger.mb.appenderRef.FILE.ref = File