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

在log4j2版本2.13中扩展几个滚动FileAppender的方法

水渊
2023-03-14

我们有一个巨大的应用html" target="_blank">程序使用我们的自定义RollingFileAppender(扩展org.apache.log4j.log4j中的RollingFileAppender 1. x)。我们已经重写了一些方法,但是有两个主要的方法是rollover()和subAppend(),如下所示:

    public void rollOver()
    {
        // Custom Code to specify how rolled-over files should be numbered and which file should be 
        // overwritten when MaxBackupIndex is reached
    }

    public void subAppend(LoggingEvent event)
    {
       // Custom Code to encrypt message before writing it
       String data = this.layout.format(event);
       if (isEncryptionOn())
        {
            data = PlatformEncryptDecrypt.encrypt2Way(data);
            data = toUnicodeHexString(data);
        }
        this.qw.write(data);
        .
        .
        .
        // Other code taken from parent class
        .
        .
        .
    }

在将其迁移到log4j2时,我希望尽可能利用log4j2的RollingFileAppender,同时只覆盖选定的方法。因为RollingFileAppender是最后一个类,所以我更喜欢使用builder来创建自定义appender。我浏览了其他几篇类似的文章,但他们谈论的是使用RollingFileAppender记录一些额外的属性。

使用当前最新版本的log4j2(即2.13)实现这一点的最佳方法是什么?非常感谢您的帮助。

共有1个答案

茹航
2023-03-14

如果您只是想加密数据,那么不要覆盖RollingFileAppender。实现您自己的布局。事实上,如果您需要创建Jira问题,我愿意添加一个EncryptingLayout来包装另一个布局。

同时,只需创建一个接受另一个布局作为配置属性的布局。然后,布局中的方法调用该布局的相应方法,然后对结果进行加密。

 类似资料:
  • 由于Log4J2的类是,所以我不能扩展它来为我的CSV创建头。 我参考了文档,它没有提供关于如何扩展现有布局的信息。http://logging.apache.org/log4j/2.x/manual/extending.html#布局 以前扩展PatternLayout的方法不起作用。 我的目标是给日志文件添加头&头应该通过下面的日志的配置文件来配置,

  • 我正在从log4j转换到logback,但我的自定义FileAppender有问题。我试图复制我的log4j行为,其中FileAppender创建了一个名为request_req#_req_type_date.log的新文件 这是我的自定义FileAppender(FormRequestAppender): 并且这是唯一一个在提交新请求时使用它的类:

  • var_dump(xlswriter_get_version()); ​ // 输出:string(5) "1.3.7"

  • Szenario:我有两个扩展,它们用一些特定字段扩展了。在TYPO3 9之前,我必须使用以下打字脚本配置对新闻扩展的依赖关系进行配置: 模型扩展了基本扩展的模型: 在TYPO3 10中,在(中断:#87623): 只要您只有一个扩展新闻扩展名的扩展名,它就可以工作多久。如果您有第二个扩展并启用TYPO3缓存,您将得到一个错误,即在第一个扩展中添加的字段在新闻扩展的模板中不可用。奇怪的是,这个问题

  • 通过钩子扩展,GitHub托管的版本库可以和外部应用实现整合。整合的接口完全开放,开发者可以访问GitHub的开源项目 github/github-services 开发新的应用整合脚本。目前GitHub已经支持超过50个外部应用的整合,在这里恕不一一列举,仅以helloworld项目为例,介绍几个常见应用的整合。 3.4.1. 邮件通知功能 配置邮件通知,可以实现新提交推送至版本库时,发送通知邮

  • 本文向大家介绍python有几个版本,包括了python有几个版本的使用技巧和注意事项,需要的朋友参考一下 Python的3.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。 为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下相容。 许多针对早期Python版本设计的程式都无法在Python 3.0上正常执行。 为了照顾现有