如何正确配置Log4J?

时间:2019-12-23 11:32:46

标签: java logging log4j

我在使用Log4J(版本2.13.0)时遇到问题,出现以下问题:

  • 我不知道我的log4j.properties文件是否已正确配置,或者甚至无法识别。
  • Log4J没有使用我指定的模式,也没有允许我记录任何跟踪/调试/信息/警告消息。

这是我的log4j.properties文件:

status = trace
dest = out
name = PropertyConfiguration

property.filename = logs/log%d{yyyy-MM-dd HH:mm:ss}.log
property.pattern = %d{yyyy-MM-dd HH:mm:ss} | [%-5p] %c{1}:%L: %m%n

appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = ${pattern}

appender.rolling.type = RollingFile
appender.rolling.name = RollingFile
appender.fileName = ${filename}
appender.rolling.filePattern = logs/log-%d{MM-dd-yyyy-HH-mm-ss}.log
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = ${pattern}
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 2
appender.rolling.policies.time.modulate = true
appender.rolling.strategy.type = DefaultRolloverStrategy
appender.rolling.strategy.max = 5

logger.rolling.name = me.tecc
logger.rolling.level = trace
logger.rolling.additivity = false
logger.rolling.appenderRef.rolling.ref = RollingFile

rootLogger.level = trace
rootLogger.appenderRef.stdout.ref = STDOUT

任何帮助将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:1)

Log4J没有使用我指定的模式,也没有允许我记录任何跟踪/调试/信息/警告消息。

  

与之前的Log4J 1.x不同,Log4J 2不支持   最初通过属性文件进行配置   已发布。来自 Log4J 2.4 的属性支持   再次添加了文件,但语法完全不同

我看到您的Log4j版本为2.13,低于2.4 ,因此它将无法正常工作。

请注意:

PropertyConfigurator(log4j.properties)无法处理DOMConfigurator(log4j.xml)支持的高级配置功能,例如支持自定义ErrorHandler,嵌套的附加程序(例如AsyncAppender)等。< / p>

答案 1 :(得分:0)

  

appender.fileName = $ {文件名}

您错过了此配置中的“滚动”部分。如下更改后重试

appender.rolling.fileName = ${filename}