Java日志 - log4j2升级为logback,涉及commons-logging、slf4j、Jboss-logging日志组件(SSH项目)
1 前言
SSH框架中已集成log4j2,因为要通过kafka接入elk,因为接入demo采用的是logback作为日志组件,所以需要将日志组件改为logback,由logback生产日志发送给kafka,接入到elk。因为SSH框架老旧,改造中又涉及到的日志工具:lagback、log4j2、commons-logging、slf4j、jboss-logging,遇到较多问题,因此梳理出了改造过程。
关于java各日志工具的解释、jar包关系可以看,或者是log4j改造为logback,可以结合两篇文章参考:log4j升级为log4j2,log4j2+slf4j+commons-logging+Jboss-logging(SSH项目)
slf4j 与 logback 集成可能的改造点
- log4j2 日志工具相关依赖删除
- 保留slf4j与commons-logging, commons-logging委托给slf4j
- 保留Jboss-logging与slf4j集成,Jboss-logging是自动匹配log4j,可能要搭建Jboss -> slf4j -> logback 的桥梁
- 增加logback相关依赖,搭建slf4j->logback,logback作为日志实现
2 改造步骤及问题解决(log4j2升级至logback)
2.1 日志实现工具的替换:log4j2移除,替换为logback
- 删除log4j1依赖及配置文件:log4j2.xml、log4j-api-2.11.0.jar、log4j-core-2.11.0.jar
- 增加logback的依赖:logback-classic-1.2.3.jar,logback-core-1.2.3.jar
- 增加logback的配置文件:logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
<!-- 日志输出格式定义 -->
<property name="LOG_PATTERN"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} - %X{hotel} - %X{userName} %-5level %logger{50} - %msg%n"/>
<!-- 日志输出文件性格定义 -->
<Property name="LOG_FILE_PATH" value="${catalina.home}/projectName_log"/>
<Property name="ARCHIVE_LOG_FILE_PATH" value="${LOG_FILE_PATH}/archiveLog"/>
<!--输出到控制台-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.P

本文详述了如何在SSH项目中将日志组件从log4j2升级到logback,涉及组件替换、logback与slf4j、commons-logging及Jboss-logging的集成,重点解决了日志输出、Spring日志问题和Jboss-logging配置调整。
&spm=1001.2101.3001.5002&articleId=108777977&d=1&t=3&u=c6ae17db279c4efeb7d236ed16ea1eb7)
692

被折叠的 条评论
为什么被折叠?



