log4j2 2.18 升级问题

收到漏洞预警 说版本log4j2  2.17以下存在安全漏洞,要求升级log4j 到最高版本2.18

只能说是坑呀   升级后就报错 Script support is not enabled  查看源码发现

scriptManager这个为空了,继续点进去看发现是在这里初始化的

对比2.17的源码发现:

2.17这里的源码是scriptManager = new ScriptManager(this, watchManager); 

2.18是scriptManager = new ScriptManager(this, watchManager, scriptLanguages);

这里多了一个参数scriptLanguages;查看源码得知这个参数是从配置文件里面得来的:

全局搜索发现这个配置文件不存在log4j2.component.properties 

仔细查看源码得知这个配置文件里面配置的这个参数的意思是 scrip里面的language必须在配置文件里面

 

解决办法:

既然没有就造一个吧 ,在resources下创建一个log4j2.component.properties的配置文件

文件;

 

 加上后完美运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
log4jlog4j2都是日志框架,但它们的使用方式和配置方式有所不同。如果要将log4j的配置转换为log4j2的配置,可以采用以下步骤: 1. 导入log4j2的依赖 在Maven项目,在pom.xml文件添加以下依赖: ```xml <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.14.1</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.14.1</version> </dependency> ``` 2. 修改日志文件配置 将log4j的日志文件配置(如log4j.properties或log4j.xml)转换为log4j2的配置文件(如log4j2.properties或log4j2.xml),并将其放置在classpath下。 注意:log4j2的配置文件的格式与log4j的配置文件的格式不同,需要按照log4j2的格式进行修改。 3. 修改代码的日志引用 将Java代码使用的`org.apache.log4j`包的引用替换为`org.apache.logging.log4j`包的引用。 例如: ```java import org.apache.log4j.Logger; ``` 替换为: ```java import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; ``` 4. 修改日志输出语句 将Java代码使用log4j的日志输出语句: ```java logger.debug("debug message"); ``` 替换为log4j2的日志输出语句: ```java logger.debug("debug message"); ``` 注意:log4j2的日志输出语句的格式与log4j的日志输出语句的格式不同,需要按照log4j2的格式进行修改。 5. 测试日志输出 完成以上步骤后,可以测试日志的输出是否正常。如果输出正常,则表示成功将log4j的配置转换为log4j2的配置。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值