当前位置: 首页 > 网络应用技术

填写坑-springboot集成log4j2

时间:2023-03-07 13:05:20 网络应用技术

    以前,调整一个项目,以优化,修改原始项目中的记录返还到log4j2,在线查找各种材料,官方文档,遇到很多坑,最后实现修改。在这一点上,这是一个特殊的记录。

    Springboot官方文件:

  https://docs.spring.io/spring-boot/docs/1.5.19.release/referene/htmlsingle/#howto-formicure- configure- log4j- log4j- logging

    一个干净的项目,如果要使用log4j2,可以使用以下方法引入依赖项:

    因为在旧项目中,日志依赖性混合在一起,并且在项目中引入了依赖项:

    摘要:项目中的日志依赖项,否则将导致日志在控制台中打印,但不会输出到文件中。

  参考(官方)文件:

  https://www.docs4dev.com/docs/zh/log4j2/2.x/all/manual-configuration.html

  https://docs.spring.io/spring-boot/docs/2.0.x/reference/htmlsingle/#boot- trauntion-custom-log-configuration

    在项目资源目录中,创建一个新的log4j2.xml或log4j2-spring.xml.t建议使用log4j2-spring.xml,否则您需要配置logging.config = configuration.config =您的配置文件名称in Application.properties或.yml。

    XML模板在线找到:

  3.1日志级别&EMSP;&emsp;在log4j2中,有8个级别,根据低到高:所有<trace <info <warn <error <fatal <quf。

  

  &emsp;&emsp;春季环境的建议:logging.config。它不提供log4j2-spring的属性。我们需要通过MDC获得.properties中的属性。

  4.1写一个监视器类

  4.2在应用程序启动类中添加自定义的start -up monitor applicationstarteventListener

  4.3使用log4j2.xml&emsp中MDC定义的属性;&emsp;如何使用$ {CTX:key}

  &emsp;&emsp;参考文档;http://logging.apache.org/log4j/2.x/async.html#allasync

  5.1令所有日志输出&EMSP;&emsp;JVM启动参数增加:

  &emsp;&emsp;log4j2配置文件不需要更改

  5.2同步和异步混合使用&EMSP;&emsp;无需在5.1中添加JVM启动参数。

  &emsp;&emsp;官方网站的配置文件

  &emsp;&emsp;当之前配置了Log4j2.xml时,未设置Asynclogger和根级别。这次,Asynclogger的类(名称=“ class/castex”)在没有打印到控制台的情况下设置了,也不会输出到文件。在检查了Asynclogger的注释后,它返回正常,因此暂时使用了完整的异步输出日志。

  &emsp;&emsp;创建一个仅针对日志测试,移植上一个配置的新模块,并发现在Asynclogger注释后,控制台仅输出错误级别日志(只有三个级别的信息,警告和错误)。缺乏logging.level.root = info(在这里要在此处挖一个坑。目前,控制台可以全部输出,添加Asynclogger并设置级别=“ info”以解决问题。

  &emsp;&emsp;摘要:缺少异步的级别(当前测试默认值为错误).additivity =“ true”(此时也可以输出控制台)。

  &emsp;&emsp;附加坑过程代码;

  原始:https://juejin.cn/post/7094912471542169614