沒有額外的學(xué)習(xí)成本,沒有其他的操作,只需要將jar包完全替換掉 log4j 即可。
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比射陽網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式射陽網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋射陽地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。
組件:reload4j
reload4j 官網(wǎng)
maven
<!-- pom.xml -->
<dependency>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
<version>1.2.22</version>
</dependency>
reload4j 是 log4j 原作者 Ceki Gülcü 發(fā)起 是基于 log4j 版本 1.2.17 的分支,其主要目的是為了解決 log4j 1.2.17 中的漏洞。
reload4j 可以做到完全平替 log4j 。
其中 log4j 1中 對(duì)安全性必要大影響的 CVE-2021-4104 CVE-2022-23302 已經(jīng)在 reload4j 的 1.2.22 版本中修復(fù)。
英文方案
英文方案主要涉及到代碼的改造,將原本的 log4j1 徹底改造成 log4j2 。
或者我們使用下面的方式通過路由鏈接 log4j1 的api 完成準(zhǔn)無代碼遷移。
組件: log4j-api 日志接口; log4j-core 具體的實(shí)現(xiàn); log4j-1.2-api log4j1 到 log4j2 的路由器,在使用 log4j1 的 api 時(shí)會(huì)在內(nèi)部路由到 log4j2 的 api。
log4j2 官網(wǎng)
log4j2-api maven
log4j2-core maven
log4j-1.2-api maven
log4j-1.2-api 使用方法(英文)
<!-- pom.xml -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>2.12.4</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.12.4</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.12.4</version>
</dependency>
但無論如何幾乎都無法替代以下幾個(gè)類的內(nèi)容缺失導(dǎo)致的代碼變更。
org.apache.log4j.spi.ThrowableInformation
org.apache.log4j.spi.ErrorHandler
等等
改造的功能點(diǎn)更多的傾向于 log4j 中對(duì)異常消息處理,異常數(shù)據(jù)處理等功能,這部分功能在項(xiàng)目中盡可能不要使用,從某些角度上來說,數(shù)據(jù)處理、消息處理這部分有專門的獨(dú)立處理組件,日志組件就應(yīng)該處理日志,尤其盡可能異步打印到日志文件或日志流中。
找到所有用到 org.apache.log4j 的包,調(diào)整代碼使用過程即可。
此處只介紹 SLF4J 和 logback
slf4j 使用手冊(cè)
logback 使用手冊(cè)
slf4j maven
logback maven
<!-- pom.xml -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.4.4</version>
</dependency>
<!--logback.xml-->
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="1 seconds">
<contextName>logback</contextName>
<property name="log.path" value="target/log/logback.log" />
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<!-- <filter class="com.example.logback.filter.MyFilter" /> -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>debug</level>
</filter>
<encoder>
<pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<appender name="file"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}.%d{yyyy-MM-dd}.zip</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="console" />
<appender-ref ref="file" />
</root>
<logger name="org.apache" level="info" />
<logger name="com.gargoylesoftware" level="warn" />
<logger name="com.example.logback" level="warn" />
<!-- com.gargoylesoftware-->
<!-- <logger name="com.gargoylesoftware" level="info" />-->
</configuration>
標(biāo)題名稱:log4j 1 升級(jí)方案
文章位置:http://chinadenli.net/article38/dsoiopp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站制作、全網(wǎng)營銷推廣、服務(wù)器托管、網(wǎng)站營銷、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容