SpringBoot2集成log4j2日志框架的实现

  


  

  

Log4j2是Log4j的进化版本,并提供了许多Logback可用的改进,同时解决了Logback体系结构中的一些固有问题。而且日志处理中我们会用到卡夫卡作为日志管道。而卡夫卡客户端依赖与Logback的兼容不是很完美,你可以选择排除依赖冲突或者使用Log4j2。
  & lt; !——更多的在

  


  

  

春季启动2。x默认使用Logback日志框架,要使用Log4j2必须先排除Logback。

        & lt; dependency>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter   & lt; exclusions>   & lt; !——排除logback——比;   & lt; exclusion>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter-logging   & lt;/exclusion>   & lt;/exclusions>   & lt;/dependency>   之前      

引入Log4j2依赖
  

        & lt; !——log4j2依赖——比;   & lt; dependency>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter-log4j2   & lt;/dependency>   之前      

上面的log4j2已经适配了slf4j日志门面,所以我们的代码无需替换,只需要替换具体的日志框架以及对应的配置文件。

  


  

  

创建log4j2。xml文件,放在工程资源目录里。这样就可以不加任何配置。如果你需要指定配置文件需要在春天引导配置文件的应用程序。yml中指定日志记录。配置属性。下面是一份比较详细的log4j2配置文件:

        & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt; !——日志级别以及优先级排序:比;致命的祝辞错误比;警告祝辞信息在调试比;跟踪比;——比;   & lt; !——配置后面的地位,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成跟踪时,你会看到log4j2内部各种详细输出——比;   & lt; !——monitorInterval: Log4j能够自动检测修改配置文件和重新配置本身,设置间隔秒数——比;   & lt;配置状态="警告" monitorInterval=" 30 "比;   & lt; !——先定义所有的appender——比;   & lt; appenders>   & lt; !——这个输出控制台的配置——比;   & lt;控制台的名字==癝YSTEM_OUT”比“控制台”目标;   & lt; !——输出日志的格式——比;   & lt; PatternLayout模式=" [% d {HH: mm: ss:瑞士}][% p] - % l - m % n %”/比;   & lt;/console>   & lt; !——文件会打印出所有信息,这个日志每次运行程序会自动清空,由附加属性决定,这个也挺有用的,适合临时测试用——比;   & lt;文件名称="日志"文件名="日志/测试。日志”附加=" false "比;   & lt; PatternLayout模式=? d {HH: mm: ss。SSS} % % 5水平类{36}% L % M - %味精% xEx % n”/比;   & lt;/File>   & lt; !——这个会打印出所有的信息及以下级别的信息,每次大小超过大小,则这大尺寸小的日志会自动存入按年份——月份建立的文件夹下面并进行压缩,作为存档——比;   & lt; RollingFile name=" RollingFileInfo "文件名=" $ {sys: user.home}/日志/info.log”   filePattern=" $ {sys: user.home}/日志/$ ${日期:yyyy-MM}/info - % d {yyyy-MM-dd} % i.log”比;   & lt; !——控制台只输出水平及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)——比;   & lt; ThresholdFilter水平="信息"/比;   & lt; PatternLayout模式=" [% d {HH: mm: ss:瑞士}][% p] - % l - m % n %”/比;   & lt; Policies>   & lt; TimeBasedTriggeringPolicy/比;   & lt; SizeBasedTriggeringPolicy大?100 MB“/比;   & lt;/Policies>   & lt;/RollingFile>   & lt; RollingFile name=" RollingFileWarn "文件名=" $ {sys: user.home}/日志/warn.log”   filePattern=" $ {sys: user.home}/日志/$ ${日期:yyyy-MM}/警告- % d {yyyy-MM-dd} % i.log”比;   & lt; ThresholdFilter水平="警告"/比;   & lt; PatternLayout模式=" [% d {HH: mm: ss:瑞士}][% p] - % l - m % n %”/比;   & lt; Policies>   & lt; TimeBasedTriggeringPolicy/比;   & lt; SizeBasedTriggeringPolicy大?100 MB“/比;   & lt;/Policies>   & lt; !——DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了20——比;   & lt; DefaultRolloverStrategy max=" 20 "/比;   & lt;/RollingFile>   & lt; RollingFile name=" RollingFileError "文件名=" $ {sys: user.home}/日志/error.log”   filePattern=" $ {sys: user.home}/日志/$ ${日期:yyyy-MM}/错误- % d {yyyy-MM-dd} % i.log”比;   & lt; ThresholdFilter水平="错误"/比;   & lt; PatternLayout模式=" [% d {HH: mm: ss:瑞士}][% p] - % l - m % n %”/比;   & lt; Policies>   & lt; TimeBasedTriggeringPolicy/比;   & lt; SizeBasedTriggeringPolicy大?100 MB“/比;   & lt;/Policies>   & lt;/RollingFile>   & lt;/appenders>   & lt; !——然后定义记录器,只有定义了日志并引入的appender, appender才会生效——比;   & lt; loggers>   & lt; !——过滤掉春天和mybatis的一些无用的调试信息——比;   & lt;记录器name=" org。springframework”水平="信息"/比;   & lt;记录器name=" org。mybatis”水平="信息"/比;   & lt;根水平=八小北?   & lt; appender-ref ref=翱刂铺ā?比;   & lt; appender-ref ref=" RollingFileInfo "/比;   & lt; appender-ref ref=" RollingFileWarn "/比;   & lt; appender-ref ref=" RollingFileError "/比;   & lt;/root>   & lt;/loggers>   & lt;/configuration>   

SpringBoot2集成log4j2日志框架的实现