溫馨提示×

溫馨提示×

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

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

slf4j+log4j升級log4j2

發(fā)布時間:2020-07-23 15:22:49 來源:網(wǎng)絡(luò) 閱讀:3251 作者:bigecy 欄目:軟件技術(shù)

首先在pom文件中加入以下依賴

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.6.2</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.6.2</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-web</artifactId>
    <version>2.6.2</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.12</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId>
    <version>1.7.12</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>2.6.2</version>
</dependency>

刪除原來的slf4j依賴

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.7</version>
</dependency>

重寫log4j.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="60">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT"> <!-- 定義類型為Console的Appender -->
            <PatternLayout pattern="%d [%t] %-5p %c{1} [%L] - %m%n"/> <!-- 定義類型為Pattern的Layout -->
        </Console>
                <RollingRandomAccessFile name="rollingRandomAccessFileAppender" immediateFlush="true" fileName="${logPath}/acc.log"
            filePattern="${logPath}/acc.log.%d{yyyy-MM-dd-HH}" append="true">
            <PatternLayout pattern="%d [%t] %-5p %c{1} [%L] - %m%n" />
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
            </Policies>
        </RollingRandomAccessFile>
    </Appenders>
    <Loggers>
        <Root level="info"> <!-- 定義Root Logger,其日志級別為info -->
            <AppenderRef ref="Console"/> <!-- Root Logger的Appender引用上面定義的Console -->
        </Root>
        <Logger name="HelloWorld" level="info" additivity="false"> <!-- 定義名字為HelloWorld的Logger,其日志級別為info,additivity為false -->
            <AppenderRef ref="Console"/> <!-- Root Logger的Appender引用上面定義的Console -->
                        <AppenderRef ref="rollingRandomAccessFileAppender"/>
        </Logger>
    </Loggers>
</Configuration>

項目中原來的log4j是根據(jù)每個小時打印日志,因此用了RollingRandomAccessFile。


然后,將log4j.xml重新命名為log4j2.xml,并且在web.xml中取消原來的context配置!
由于上面這一點一開始沒有做,只是在原來log4j.xml的基礎(chǔ)上把內(nèi)容修改了,所以打包到服務(wù)器上運行時,一直沒有日志文件輸出,因為pom文件中依賴的其他項目帶有l(wèi)og4j相關(guān)的jar包,slf4j不知道該使用哪一個。

升級完畢。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI