如何在log4j2中生成标题行

Ent*_*opy 2 java configuration logging log4j log4j2

在log4j中,我们有时会创建第二个记录器并将CSV数据输出到它作为应用程序的度量表.这些数据很容易导入和绘制,而不是我们用于调试的普通日志等.

在旧的log4j中,我们通过继承PatternLayout,覆盖header属性并将其指定为:

log4j.logger.servicePerformance=INFO, servicePerformance
log4j.appender.servicePerformance=mypackage.log4j.SingleHeaderFileAppender
log4j.appender.servicePerformance.File=logs/performance.log
log4j.appender.servicePerformance.layout=mypackage.log4j.HeaderLayout
log4j.appender.servicePerformance.layout.ConversionPattern=%m%n
log4j.appender.servicePerformance.layout.Header=Start Time, Service Invoked, Elapsed ms, Candidate Count, Asset Count
log4j.additivity.servicePerformance=false
Run Code Online (Sandbox Code Playgroud)

我不知道如何在log4j 2中执行此操作,我们现在有两个应用程序最近转换为使用.

Rem*_*pma 5

Log4j2的PatternLayout还支持页眉和页脚属性:

<PatternLayout>
  <pattern>%d %p [%t] %c %m%n</pattern>
  <header>This is a header</header>
  <footer>(c) 1999-2014</footer>
</PatternLayout>
Run Code Online (Sandbox Code Playgroud)

我认为属性也有效:

<PatternLayout pattern="%d %p [%t] %c %m%n"
  header="This is a header"
  footer="(c) 1999-2014" />
Run Code Online (Sandbox Code Playgroud)

由于指出了这一点,因此没有正确记录.

  • 我认为这是不可能的。您是否知道 Log4j 1.2 自 2015 年 8 月起已终止生命周期?(https://blogs.apache.org/foundation/entry/apache_logging_services_project_announces)。此外,已知 Log4j 1.2 在 Java 9 中被破坏 (https://blogs.apache.org/logging/entry/moving_on_to_log4j_2)。如果您的公司代码只是进行日志记录而不是尝试自定义 Log4j 1.2,那么 log4j-1.2-api 适配器应该会使迁移变得容易。 (2认同)