【问题标题】:Understanding part of log4j2 configuration file了解部分 log4j2 配置文件
【发布时间】:2018-10-31 09:43:37
【问题描述】:

我能够通过 XML 理解 log4j2 配置,但是当我们通过属性文件配置它时我有些困惑。

1. appender.console.type = Console
2. appender.console.name = STDOUT
3. appender.console.layout.type = PatternLayout

在第 1 行中,我们在两个地方使用了console,那么哪一个真正告诉我要使用ConsoleAppender,而appender.console 代表什么?我知道在 XML 中,我们将 Console 指定为 appender 类型,并使用 name 属性为其命名,以便稍后在 Logger 元素中引用它。

【问题讨论】:

  • 属性文件中的参数与xml文件的作用相同。

标签: java logging log4j2


【解决方案1】:

appender.console 中,控制台是该组件的标识符。与 XML 配置中的name 属性相同。

在您的情况下,您还可以通过以下方式实现相同的配置:

appender.foo.type = Console
appender.foo.name = STDOUT
appender.foo.layout.type = PatternLayout

更多信息请参见the docs

appender.foo.name 属性是做什么用的?
docs for appenders 声明“Appender 总是有一个名称,以便可以从 Loggers 中引用它们。”对于每个 logger,您必须至少引用一个 appender,以便将日志消息写入某处。使用您之前定义的名称。

在您的示例中,您可以像这样将附加程序添加到记录器中:

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

【讨论】:

  • 谢谢。但是,appender.console.name 是为了什么?
  • 我更新了答案。希望这能让它更清楚。也许你应该看看 XML 配置。在我看来,这要清楚得多。
猜你喜欢
  • 2018-05-06
  • 2014-10-18
  • 2014-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-24
  • 2014-12-30
相关资源
最近更新 更多