欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

log4j 1 升級(jí)方案

log4j 1 升級(jí)方案

目標(biāo)

  1. 解決重要安全漏洞
  2. 多項(xiàng)目日志監(jiān)測改造(可選)
  3. 性能提升(可選)
  4. 功能擴(kuò)展(可選)

升級(jí)要求

  1. 少修改代碼 或 不修改代碼
  2. 功能盡可能平替,而不發(fā)生基本功能變化
  3. 低學(xué)習(xí)成本

具體方案

完全平替的改造

方案特征

  1. 完全平替

沒有額外的學(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í)體公司更值得信賴。

方案具體內(nèi)容

組件: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ù)。

有一定學(xué)習(xí)成本但不多(log4j1 升級(jí)到 log4j2)

方案特征

  1. 部分平替
  2. 有一定學(xué)習(xí)成本(log4j1 和 log4j2 的配置還是有一些不一樣的)
  3. 擴(kuò)展的額外功能對(duì)于項(xiàng)目維護(hù)與正常運(yùn)行有更好的幫助(不是主要因素)
  4. 不支持 jdk1.5 及以下 (reload4j 支持 1.5)

方案具體介紹

英文方案
英文方案主要涉及到代碼的改造,將原本的 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)該處理日志,尤其盡可能異步打印到日志文件或日志流中。

翻天覆地的調(diào)整(通過 SLF4J / commons-logging 替換 現(xiàn)有的 日志配置)

方案特征

  1. 日志擴(kuò)展性極佳。
  2. 日志性能極佳。
  3. 日志模塊化,對(duì)其他模塊幾乎沒有影響
  4. 日志管理更加多樣化,選擇更多。

方案具體介紹

找到所有用到 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)

小程序開發(fā)