亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決log4j升級log4j2遇到的問題

發布時間:2021-12-24 11:32:04 來源:億速云 閱讀:472 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關如何解決log4j升級log4j2遇到的問題,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

    log4j升級log4j2的問題

    一、導入包

     <!-- log -->
    <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-api</artifactId>
          <version>${slf4j.version}</version>
    </dependency>
    <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>jcl-over-slf4j</artifactId>
         <version>${slf4j.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.8.2</version>
    </dependency>
            <!-- 日志橋接包, 適配log4j2 -->
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.8.2</version>
    </dependency>

    注意:可能有些包需要依賴log4j,但是升級后只有log4j2了,此時會報找不到類的錯,如:

    Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger

    那么如果這些包沒有使用slf4接口,而是寫死了必須依賴log4j的話,如果實在不想導入log4j的包,那么只能找能代替這個包的工具包使用了

    如:

    <!-- 使用該報去掉log4j,后會報上述錯誤,所以就把這個包換了 -->
    <dependency>
     <groupId>com.github.sgroschupf</groupId>
     <artifactId>zkclient</artifactId>
     <version>0.1</version>
     <exclusions>
      <exclusion>
       <artifactId>log4j</artifactId>
       <groupId>log4j</groupId>
      </exclusion>
     </exclusions>
    </dependency>

    替換為如下的包,就可以了:

    <dependency>
     <groupId>com.101tec</groupId>
     <artifactId>zkclient</artifactId>
     <version>0.10</version>
     <exclusions>
      <exclusion>
       <artifactId>log4j</artifactId>
       <groupId>log4j</groupId>
      </exclusion>
      <exclusion>
       <artifactId>slf4j-log4j12</artifactId>
       <groupId>org.slf4j</groupId>
      </exclusion>
     </exclusions>
     </dependency>

    二、在src/main/resources下新建一個log4j2.xml文件

    配置如下

    <?xml version="1.0" encoding="UTF-8" ?>
    <configuration status="ERROR">
     <Properties>
            <Property name="PATTERN" value="[%d{HH:mm:ss.SSS} %-5level] [%t] %c{3} - %msg%n" />
         <property name="FILE_PATH" value="/mySoft/logs" />
         <property name="FILE_SIZE" value="50 MB" />
        </Properties>
     <Appenders>
    <!-- 控制臺日志打印 -->
      <Console name="Console" target="SYSTEM_OUT">
       <PatternLayout pattern="${PATTERN}"/>
      </Console>
      <!-- 生產環境日志打印 -->
    <!-- fileName表示創建的日志文件名,filePattern表示如果日志策略按照日期與大小做限定的話,如果大小超過50m就會按該格式將之前的的日志文件重命名,并重新創建新的fileName。同理,如果日期超過限定的時間,也會進行同樣的操作,下文定義一天建一個,如果想一分鐘建一個則filePattern="${FILE_PATH}/demo-%d{yyyy-MM-dd HH-mm}-%i.log" 如此定義-->
      <RollingFile name="ProdFile" 
       fileName="${FILE_PATH}/demo.log"
       filePattern="${FILE_PATH}/demo-%d{yyyy-MM-dd}-%i.log">
       <PatternLayout pattern="${PATTERN}" />
       <Policies>
              <TimeBasedTriggeringPolicy />
              <SizeBasedTriggeringPolicy size="${FILE_SIZE}"/>
          </Policies>
       <Filters>
                 <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY" />
             </Filters>
      </RollingFile>
     </Appenders>
     <!-- root部分定義了log4j2的默認輸出級別和方式 -->
     <loggers>
      <root level="error">
       <appender-ref ref="Console" />
       <appender-ref ref="ProdFile" />
      </root>
     </loggers>
    </configuration>

    升級log4j2遇到的那些坑

    <slf4j.version>1.7.13</slf4j.version>
    <log4j2.version>2.3</log4j2.version>
    <disruptor.version>3.3.2</disruptor.version>
    <spring.version>3.2.4.RELEASE</spring.version>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>${log4j2.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>${log4j2.version}</version>
    </dependency>
    <dependency>
        <groupId>com.lmax</groupId>
        <artifactId>disruptor</artifactId>
        <version>${disruptor.version}</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>${log4j2.version}</version>
    </dependency>
    <!--這塊比較關鍵,Spring原生應用中需要用到commons-logging,需要把它exclude掉,另外引入jcl-over-slf4j-->
    <!--你會發現jcl-over-slf4j 只是改寫了commons-logging 去兼容Spring-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <exclusions>
            <exclusion>
                <artifactId>commons-logging</artifactId>
                <groupId>commons-logging</groupId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>${slf4j.version}</version>
        <scope>runtime</scope>
    </dependency>
    <!-- 如果代碼中依賴的jar包用到了log4j1.2.X,當工程中將log4j1.2.X排除掉了之后,項目啟動時會報錯不成功的 -->
    <!-- 把下面這個jar引入進來就OK了 -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>log4j-over-slf4j</artifactId>
        <version>${slf4j.version}</version>
    </dependency>

    關于“如何解決log4j升級log4j2遇到的問題”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    米易县| 武鸣县| 章丘市| 绥德县| 元朗区| 鄂托克前旗| 自贡市| 泰州市| 乌苏市| 阳江市| 巴楚县| 临澧县| 苏尼特左旗| 玉树县| 泰州市| 广东省| 南木林县| 林西县| 惠水县| 故城县| 芜湖市| 江津市| 中江县| 红河县| 焦作市| 齐河县| 广丰县| 蛟河市| 和林格尔县| 固始县| 额尔古纳市| 顺义区| 临夏县| 诸暨市| 卢龙县| 博罗县| 石台县| 东方市| 兴安盟| 双峰县| 沿河|