当前位置: 首页 > 知识库问答 >
问题:

如何在log4j2中编写自定义头

鞠凌龙
2023-03-14

我想在日志文件的开头写入自定义头行。自定义头是日期/时间,XML文件名,
在log4j中,我可以通过扩展PatternLayout来创建自定义头。
我为自定义头包含了PatternLayout的log4j属性config和子类CustomFileHeaderLayout。工作很好。

log4j.属性

log4j.rootLogger=TRACE, R1, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender

log4j.appender.A1.layout=org.ibfd.addmliednotes.util.CustomFileHeaderLayout
##org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%p] [%d{dd MMM hh:mm:ss aa}] - %m%n
log4j.appender.R1=org.ibfd.addmliednotes.util.CustomFileAppender
##org.apache.log4j.RollingFileAppender
log4j.appender.R1.File=${file.name}
log4j.appender.R1.MaxFileSize=10MB
log4j.appender.R1.layout=org.ibfd.addmliednotes.util.CustomFileHeaderLayout
log4j.appender.R1.layout.ConversionPattern=[%d{dd MMM hh:mm:ss aa}] %m%n
public class CustomFileHeaderLayout extends PatternLayout{  
    public String getHeader(){  
        return "Date/Time, XML filename, <treatydoc or <amendingdoc, Message\r\n";
    } 
}

共有1个答案

汲灿
2023-03-14

我在我的log4j2模式中添加了一些附加内容...比如环境变量或上下文变量...我希望这对你有帮助

模式=[%x{global}][$${env:runtime_environment}][%level][%logger{15}][方法:%m行:%l%msg]%n

RUNTIME_ENVIRONMENT设置用户配置文件,或使用set或export命令行...global使用log4j2上下文设置org.apache.logging.log4j.ThreadContext(ThreadContext.Put(“global”,“anything”))

查看https://logging.apache.org/log4j/2.x/manual/layouts.html

 类似资料:
  • 我想为Atom编写一个命令,它由两个或多个预先存在的命令组成,比如“Select Line”和“Cut”。我该怎么做?

  • 问题内容: 我们使用log4j 1.2.x登录我们的产品,并希望在不久的将来迁移到log4j2.x。我们已实现的功能之一是将系统信息和其他重要参数记录在生成的每个新翻转日志文件上。在log4j 1.2.x中实现的方式是扩展了log4j类并覆盖了该方法,下面是实现的部分代码段 现在,当我们要迁移到log4j2时,我们正在寻找一种实现相同功能的新解决方案。但是,正如我看到的log4j2的源代码与旧的源

  • 问题内容: 我正在尝试在Log4j2中编写自己的RewritePolicy。该文档指出: RewritePolicy是一个接口,允许实现在将LogEvent传递给Appender之前检查并可能对其进行修改。RewritePolicy声明一个必须执行的名为rewrite的方法。该方法通过LogEvent传递,并且可以返回相同事件或创建一个新事件。 这是我的 java类 : 这是我的 yaml配置 文

  • 问题内容: 我正在使用Python的应用程序编写一些测试用例。现在,我需要将一个对象列表与另一个对象列表进行比较,以检查第一个列表中的对象是否符合我的期望。 如何编写自定义方法?应该怎么办?是否应该在失败时引发例外?如果是,哪个例外?以及如何传递错误消息?错误消息应该是unicode字符串还是字节字符串? 不幸的是,官方文档没有解释如何编写自定义断言方法。 如果您需要一个真实的示例,请继续阅读。

  • 问题内容: 问题 我希望某些观点仅适用于网站的高级用户。 在项目中的各种应用程序中如何使用此装饰器? 问题答案: 你不必为此编写自己的装饰器,就像中已经包含的那样。 还有一个扩展此装饰器的代码段(),该代码段非常适合你的用例。 而且,要(重新)使用装饰器,只需将装饰器放在路径中的模块中,即可从任何其他模块导入它。

  • 我正在尝试在log4j2中编写自己的RewritePolicy。文件指出: 然而,我不知道如何将它注入我的配置文件。我如何使它在运行时工作?