Java猿社区之日志组件升级Log4j2

Java猿社区之日志组件升级Log4j2

前言

升级前提介绍:在线客服关于升级Log4j2记录日志的总结

本次升级样例项目:

  • ddky-backManage-all
  • ddky-report-web

参考:
http://logging.apache.org/log4j/2.x/manual/webapp.html#Servlet-2.5

升级web

修改pom

删除旧依赖

  • 此处需要删除各包下引用的低版本log4j,使用excludes去除
  • 可以使用mvn dependency:tree查看冲突和低版本log4j引用情况
  • idea可以直接使用Digrams -> show dependencies
                <!-- Log4j 删除旧版本 -->
		<!--<dependency>-->
			<!--<groupId>org.slf4j</groupId>-->
			<!--<artifactId>slf4j-api</artifactId>-->
			<!--<version>${slf4j.version}</version>-->
		<!--</dependency>-->
		<!--<dependency>-->
			<!--<groupId>org.slf4j</groupId>-->
			<!--<artifactId>slf4j-log4j12</artifactId>-->
			<!--<version>${slf4j.version}</version>-->
		<!--</dependency>-->
		<!--<dependency>-->
			<!--<groupId>log4j</groupId>-->
			<!--<artifactId>log4j</artifactId>-->
			<!--<version>${log4j.version}</version>-->
		<!--</dependency>-->
        
        <!-- 排除log4j和logback依赖包 -->
        <dependency>
			<groupId>org.apache.zookeeper</groupId>
			<artifactId>zookeeper</artifactId>
			<version>3.4.6</version>
			<exclusions>
				<!--  排除log4j1的方式  -->
				<exclusion>
					<groupId>log4j</groupId>
					<artifactId>log4j</artifactId>
				</exclusion>
				<!--  排除logback的方式  -->
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-log4j12</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
        
        <!-- 去除disconfig log4j1 -->
		<dependency>
            <groupId>com.baidu.disconf</groupId>
            <artifactId>disconf-client</artifactId>
            <version>2.6.35-ddky</version>
            <exclusions>
                <exclusion>
                     <groupId>commons-io</groupId>
                     <artifactId>commons-io</artifactId>
                </exclusion>
				<exclusion>
					<groupId>log4j</groupId>
					<artifactId>log4j</artifactId>
				</exclusion>
            </exclusions>
        </dependency>
        <dependency>
			<groupId>com.github.sgroschupf</groupId>
			<artifactId>zkclient</artifactId>
			<version>0.1</version>
			<exclusions>
				<!--  排除log4j1的方式  -->
				<exclusion>
					<groupId>log4j</groupId>
					<artifactId>log4j</artifactId>
				</exclusion>
				<!--  排除logback的方式  -->
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-log4j12</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
        
        ...等等等

引入log4j2依赖:
版本统一使用:

  • log4j-2.11.2
  • disruptor-3.4.2

<!-- ***********Log4j2升级开始********** -->

		<!-- log4j2依赖包 异步日志 -->
		<dependency>
			<groupId>com.lmax</groupId>
			<artifactId>disruptor</artifactId>
			<version>3.4.2</version>
		</dependency>

		<!-- slf4j门面包 -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.25</version>
		</dependency>

		<!-- log4j2核心包 -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
			<version>2.11.2</version>
		</dependency>

		<!-- log4j2门面包 -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-api</artifactId>
			<version>2.11.2</version>
		</dependency>

		<!-- 该包是 log4j 升级到 log4j2的必须包 使用该包 不需要修改以前的 Logger.getLogger()这种获取对象的方式 -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-1.2-api</artifactId>
			<version>2.11.2</version>
		</dependency>
		<!-- 该包是slf4j 升级到 log4j2的必须包 使用该包 其他依赖jar中依赖slf4j 不会报错 -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-slf4j-impl</artifactId>
			<version>2.11.2</version>
		</dependency>

		<!-- web项目需要引用此包 -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-web</artifactId>
			<version>2.11.2</version>
		</dependency>

		<!-- 桥接:告诉commons logging使用Log4j2 -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-jcl</artifactId>
			<version>2.11.2</version>
			<scope>runtime</scope>
		</dependency>

		<!-- ***********Log4j2升级结束********** -->
配置web.xml

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mMkdrvJ3-1578400083971)(./1578389815402.png)]

升级web-app到2.5版本(推荐,由于公司项目servlet都采用2.5版本)

原先:

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

改为:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
		 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
		 version="2.5">

修改原先的配置

        <listener>
		<listener-class>org.springframework.web.util.Log4jConfigListener
		</listener-class>
	</listener>
        <context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>classpath:log4j.properties</param-value>
	</context-param>

添加新配置:

	<!--日志升级开始-->
	<listener>
		<listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
	</listener>
	<filter>
		<filter-name>log4jServletFilter</filter-name>
		<filter-class>org.apache.logging.log4j.web.Log4jServletFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>log4jServletFilter</filter-name>
		<url-pattern>/*</url-pattern>
		<dispatcher>REQUEST</dispatcher>
		<dispatcher>FORWARD</dispatcher>
		<dispatcher>INCLUDE
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值