【问题标题】:Migrating from log4j to log4j2 - properties file configuration including categories从 log4j 迁移到 log4j2 - 包括类别的属性文件配置
【发布时间】:2021-12-14 12:08:17
【问题描述】:

我有一个使用 log4j 的 java 应用程序,配置如下。

# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1
log4j.debug=false

# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c %x - %m%n
#log4j.appender.A1.threshold=DEBUG

# DEBUG, INFO, WARN, ERROR, FATAL
log4j.category.com.myorganization.MyClass=INFO
log4j.category.com.myorganization.MyOtherClass=WARN

我想迁移到具有与上述相同配置的 log4j2。虽然我找到了很多文档,尤其是Migrating from log4j to log4j2 - properties file configuration,但没有一个示例包含类别配置,就像我在最后两行中所做的那样。

请谁能帮我看看我的 log4j2.properties 文件与上面的配置相同吗?

【问题讨论】:

标签: java log4j log4j2


【解决方案1】:

感谢 Piotr 的解释,我的问题的解决方案如下:

appenders=xyz

appender.xyz.type = Console
appender.xyz.name = myOutput
appender.xyz.layout.type = PatternLayout
appender.xyz.layout.pattern = [%d{yy-MMM-dd HH:mm:ss:SSS}] [%p] [%c:%L] - %m%n

rootLogger.level = debug
rootLogger.appenderRefs = abc
rootLogger.appenderRef.abc.ref = myOutput

logger.c1.name=com.myorganization.MyClass
logger.c1.level=INFO
logger.c2.name=com.myorganization.MyOtherClass
logger.c2.level=WARN

唯一的缺点似乎是记录器现在需要有名称(c1、c2、任何唯一名称)。

【讨论】:

  • Log4j 2.x 中的*.properties 格式相当冗长。使用 XML 格式,您将不需要那些唯一的 ID(参见examples)。
  • 同意 log4j2。我更喜欢 log4j 1 上的属性,因为它比 XML 更有效。
猜你喜欢
  • 2016-06-24
  • 1970-01-01
  • 2020-10-02
  • 2020-12-08
  • 2018-05-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多