log4j从1.x平滑升级至2.x
由于近期曝出log4j漏洞,所有项目log4j整体升级,本文从1.2.17升级至2.16.0,无需改动代码;步骤如下:
1.将tomcat部署路径/webapps/api/WEB-INF/lib路径中的log4j-1.2.17.jar备份后删除;
2.将log4j-xxx-2.16.0.jar等五个jar包放入步骤1的路径中;
3.将tomcat部署路径/webapps/api/WEB-INF/classes路径中的log4j.properties备份后删除;
4.将log4j2.xml放入步骤3中的路径中;
5.重启tomcat,检查tomcat部署路径/logs文件夹中,是否出现api(或者在log4j2.xml中自定义的文件夹名称)文件夹,api文件夹内是否存在info.log、warn.log、error.log,出现则升级成功;
相关jar包:
log4j-api-2.16.0.jar、log4j-1.2-api-2.16.0.jar、log4j-core-2.16.0.jar、log4j-slf4j-impl-2.16.0.jar、log4j-web-2.16.0.jar
所有jar包从maven都可下载
地址: https://mvnrepository.com/artifact/org.apache.logging.log4j
log4j2.xml根据tomcat启动方式不同,日志路径配置也有所不同
1.startip方式启动
<?xml version="1.0" encoding="UTF-8"?>
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出-->
<!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数-->
<configuration status="INFO" monitorInterval="30"><!--先定义所有的appender--><appenders><!--这个输出控制台的配置--><console name="Console" target="SYSTEM_OUT"><!--输出日志的格式--><PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/></console><!--文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,这个也挺有用的,适合临时测试用--><File name="log" fileName="log/test.log" append="false"><PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/></File><!-- 这个会打印出所有的info及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档--><RollingFile name="RollingFileInfo" fileName="../logs/api/info.log"filePattern="../logs/api/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log"><!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)--> <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/><PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/><Policies><TimeBasedTriggeringPolicy/><SizeBasedTriggeringPolicy size="50 MB"/></Policies></RollingFile><RollingFile name="RollingFileWarn" fileName="../logs/api/warn.log"filePattern="../logs/api/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log"><ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/><PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/><Policies><TimeBasedTriggeringPolicy/><SizeBasedTriggeringPolicy size="100 MB"/></Policies><!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了20 --><DefaultRolloverStrategy max="20"/></RollingFile><RollingFile name="RollingFileError" fileName="../logs/api/error.log"filePattern="../logs/api/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log"><ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/><PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/><Policies><TimeBasedTriggeringPolicy/><SizeBasedTriggeringPolicy size="100 MB"/></Policies></RollingFile></appenders><!--然后定义logger,只有定义了logger并引入的appender,appender才会生效--><loggers><!--过滤掉spring和mybatis的一些无用的DEBUG信息--><logger name="org.springframework" level="INFO"></logger><logger name="org.mybatis" level="INFO"></logger><root level="INFO"><appender-ref ref="Console"/><appender-ref ref="RollingFileInfo"/><appender-ref ref="RollingFileWarn"/><appender-ref ref="RollingFileError"/></root></loggers>
</configuration>
2. 配置服务方式启动:
<?xml version="1.0" encoding="UTF-8"?>
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出-->
<!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数-->
<configuration status="INFO" monitorInterval="30"><!--先定义所有的appender--><appenders><!--这个输出控制台的配置--><console name="Console" target="SYSTEM_OUT"><!--输出日志的格式--><PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/></console><!--文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,这个也挺有用的,适合临时测试用--><File name="log" fileName="log/test.log" append="false"><PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/></File><!-- 这个会打印出所有的info及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档--><RollingFile name="RollingFileInfo" fileName="logs/api/info.log"filePattern="logs/api/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log"><!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)--> <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/><PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/><Policies><TimeBasedTriggeringPolicy/><SizeBasedTriggeringPolicy size="50 MB"/></Policies></RollingFile><RollingFile name="RollingFileWarn" fileName="logs/api/warn.log"filePattern="logs/api/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log"><ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/><PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/><Policies><TimeBasedTriggeringPolicy/><SizeBasedTriggeringPolicy size="100 MB"/></Policies><!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了20 --><DefaultRolloverStrategy max="20"/></RollingFile><RollingFile name="RollingFileError" fileName="logs/api/error.log"filePattern="logs/api/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log"><ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/><PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/><Policies><TimeBasedTriggeringPolicy/><SizeBasedTriggeringPolicy size="100 MB"/></Policies></RollingFile></appenders><!--然后定义logger,只有定义了logger并引入的appender,appender才会生效--><loggers><!--过滤掉spring和mybatis的一些无用的DEBUG信息--><logger name="org.springframework" level="INFO"></logger><logger name="org.mybatis" level="INFO"></logger><root level="INFO"><appender-ref ref="Console"/><appender-ref ref="RollingFileInfo"/><appender-ref ref="RollingFileWarn"/><appender-ref ref="RollingFileError"/></root></loggers>
</configuration>
log4j从1.x平滑升级至2.x相关推荐
- Log4j的中文文档
Short introduction to log4j Ceki Gülcü March 2002 译者声明: 1. 这是根据最新的log4j(jakarta-log4j-1.2.8)的开 ...
- Redis 生产架构选型解决方案
以下文章来源方志朋的博客,回复"666"获面试宝典 推荐使用更新的引擎版本以支持更多的特性. Redis 6.0新特性说明: 模块系统新增多个API. 支持SSL/TLS加密. 支 ...
- Redis生产环境架构选型方案对比
推荐使用更新的引擎版本以支持更多的特性. Redis 6.0新特性说明: 模块系统新增多个API. 支持SSL/TLS加密. 支持新的Redis协议:RESP3. 服务端支持多模式的客户端缓存. 支持 ...
- Tech·Ed 2007大会课程内容
北京会场:2007年11月07日 星期三 时间 分会场一 分会场二 分会场三 分会场四 分会场五 分会场六 分会场七 分会场八 分会场九 分会场十 08:00 - 09:00 来宾签到/合作伙伴展区开 ...
- 平安城市与智慧城市对接的关键要素
平安城市经过前两个阶段(布点.联网)的大规模建设之后,如今正向系统应用深化,数据深入挖掘利用的方向发展.以视频监控为基础单元,一些城市开始尝试在既有的社会治安管理平台系统基础上拓展更多的应 ...
- 云小课 | IPv4枯了,IPv6来了
IPv6的由来 上节课我们讲了公网IP与私网IP,了解了IP地址的一些知识. 我们一般常见的IP地址,例如:192.168.0.1,这种由32位二进制数值组成的IP地址,属于IPv4地址.IPv4即第 ...
- 技术圈儿007---Redis 生产架构选型解决方案
在写开源项目的时候,想到了要支持多种redis部署方式,于是对于这块的生产环境的架构选型展开调研 一 引擎版本 推荐使用更新的引擎版本以支持更多的特性, Redis 6.0新特性说明 模块系统新增多个 ...
- 国内3G市场发展情况
中国是全球最大的移动通信消费国, 据工业和信息化部的统计,截至2009年8月底,国内手机用户数量已超过7.1亿.而据CNNIC调查显示,中国手机网民占到整体手机使用人数的 34.2%,总规模达到1.8 ...
- MIUI9开发版提前完成全系机型适配,近50款小米手机可升级
9月8日,MIUI官方微博公布:"第三批MIUI 9开发版升级正式开始推送,比原计划提前两周!已累计支持近 50 款小米机型升级,包括:小米6.小米5X.红米Note4X(高通版).小米5. ...
- 使用各种姿势舒服的部署微前端项目(上:打包与上传)
微前端作为解决巨石应用模块化和降低技术框架变动风险的神器,我觉得是当下前端发展的一大方向,可以在未来5-10年内保持生命力. 作者从2019年12月第一次使用qiankun框架落地微服务以来已经过去了 ...
最新文章
- day8 动态导入模块、socket进阶
- idea创建mybatis的config.xml和mapper.xml方法
- linux工具之检测内存泄漏-valgrind
- .NET中Flags枚举的使用
- vuecli启动的服务器位置,在vue cli 3生成的项目中启动dev服务器
- Java注解的基本概念和原理及其简单实用
- Oracle 11g 新特性 -- Invisible Indexes(不可见的索引) 说明
- android intent bundle传递参数,Android 使用Intent和Bundle传递数据及如何传递enum
- idea server日志乱码_windows下,Kiwi_Syslog日志服务器的搭建
- 俄罗斯政府称“主权网络”测试成功
- SimpleDateFormat时间日期格式化,时间日期类使用示例
- maven配置eclipse案例及命令
- 谷歌app使用的是什么字体_如何使用Google字体
- linux 文本编辑器vi常用命令
- 硬盘 : ATA、ATAPI的含义
- fileupload控件的属性_FileUpload控件的配置 .
- C语言实现华氏温度转换为摄氏温度
- 互联网公司的完整开发流程是怎样的?
- FACIAL阅读笔记
- 湖北2021高考成绩排序查询,2021年湖北高考成绩排名查询系统 湖北高考位次排名表...
热门文章
- smss lsass http://laji.xrlyy.com病毒解决办法
- 评测 AlibabaCloud 阿里云国际版 香港轻量云服务器的性能和网络怎么样
- 图书信息管理系统(SSM框架)
- 1378Problem A:zyf的字符统计
- outlook2016登录163邮箱教程
- TeamViewer远程控制软件的许可证有什么用处
- ios微信支付失败 php,iOS微信支付的那些坑
- Excel怎么实现多列数据排列组合
- [CSDN] 微软雅黑可能导致的博客侵权问题
- 全球高效能人士给青年的50个忠告(上)