我必须在这里做些蠢事:
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
答案 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