又被漏洞追着跑?log4j2升级到 2.23.1 操作流程

背景

Java 用第三方开源包,免不了被漏洞追着跑,几乎每年都要对最新爆出的漏洞组件进行升级,今年要升级的是 log4j2 和 nacos,升级到最新版本。

本文介绍 log4j2 升级到最新版本 2.23.1 的过程。

整理了一份面试笔记包括了:Java面试、Spring、JVM、MyBatis、Redis、MySQL、并发编程、微服务、Linux、Springboot、SpringCloud、MQ、Kafka 面试专题

需要全套面试笔记的【点击此处即可】即可免费获取

依赖包

log4j2 其实用法很简单,涉及到的 jar 包只有 5 个:

  1. log4j-1.2-api-2.23.1.jar
  2. log4j-api-2.23.1.jar
  3. log4j-core-2.23.1.jar
  4. log4j-slf4j-impl-2.23.1.jar
  5. slf4j-api-1.7.x.jar

log4j2 使用的门面框架包 slf4j-api-1.7.x.jar ,这个很重要,不能盲目对这个包进行升级,否则会报下列警告:

 

bash

复制代码

SLF4J: No SLF4J providers were found. SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details. SLF4J: Class path contains SLF4J bindings targeting slf4j-api versions 1.7.x or earlier. SLF4J: Ignoring binding found at [jar:file:/home/ultrasafe-SmartCollector-1.2/lib/commonlib/log4j-slf4j-impl-2.23.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See https://www.slf4j.org/codes.html#ignoredBindings for an explanation.

门面包版本包不匹配时,日志直接被忽略了,别问我怎么知道的,这是我画蛇添足把这个包升级到 2.0.5 后得出的教训。

log4j2 的配置环境变量引用方法

额外补充一下我在将某项目从 log4j 升级到 log4j2 的过程中碰到的一个小问题,log4j.properties 中引用环境变量的方法是 ${系统变量} ,但是对于 log4j2.xml 配置文件中,这个方式不生效了,而是用 ${sys:系统变量} 方式引用系统变量。

启示录

log4j2 只要5个包,升级后其他 log4j 的 jar 可以删除了。升级过程除了自作聪明对门面升级而调坑外,比我想象的顺利多了。去掉了 log4j 后,至少可以消停一段时间了。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
根据引用的内容,"/usr/local/bin/allure/allure-2.23.1: Not a directory" 是一个错误提示,意味着该路径不是一个目录。根据引用中的错误1,这可能是因为全局工具配置的路径有问题导致的。请检查您的配置,确保正确指定了allure的路径。 此外,还有可能是由于其他原因导致的错误。比如引用中提到的"bash: /usr/bin/autocrorder: /usr/bin/python^M: bad interpreter: No such file or directory"错误提示,表明解释器找不到。这可能是因为指定的解释器路径不正确导致的。您可以检查并确保指定的解释器路径是正确的。 另外,根据引用中的错误2,如果您在生成报告时遇到了名字不一致的问题,可以检查一下shell脚本中的allure-result路径和生成报告的名字是否一致,确保它们是相同的。 最后,根据引用中的错误3,如果提示"pytest: not found",这意味着没有找到pytest命令。您可以将py.test的目录添加到环境变量中,确保系统可以找到pytest命令。 综上所述,如果您遇到了"/usr/local/bin/allure/allure-2.23.1: Not a directory"错误,需要检查全局工具配置的路径是否正确。此外,还要确保解释器路径正确,生成报告的名字和路径一致,并且系统能够找到pytest命令。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [bash: /usr/bin/autocrorder: /usr/bin/python^M: bad interpreter: No such file or directory](https://download.csdn.net/download/weixin_38653878/12846530)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [allure报告---动态显示模块名和用例标题](https://blog.csdn.net/lixiaomei0623/article/details/120273737)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [python+allure+jenkins 集成接口自动化 问题总结](https://blog.csdn.net/May_JL/article/details/131974974)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值