1. 程式人生 > >log4j升級到logback

log4j升級到logback

ext con 最大 hold rop https logs lena acad

雖然現在log4j已經基本上不更新很久了,但實際上升級log4j到logback最大的難度並不在於本身的替換,而是現有大量的三方jar依然使用log4j,以至於無法100%的exclude掉,所以很有可能是無法做到純粹將log4j升級到logback的。在我們的很多系統中,就如此。

如果是使用slf4j作為facade的話,是可以無縫的升級的,但是如果直接使用了Log4j中的類,恐怕就無能為力了。

maven依賴:

<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.11</version>
<type>jar</type>
</dependency>

logback的配置和log4j基本相同,只不過名字叫做logback.xml。

<?xml version="1.0" encoding="UTF-8"?>  
  
<configuration>  
     <property name="APP_Name" value="cptIdeUI" />     
     <contextName>${APP_Name}</contextName>    
  
 <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"
> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>[%d{yyyyMMdd HH:mm:ss-SSS}] %-5level [%thread][%logger:%line]- %msg%n</pattern> </layout> <!-- <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>INFO</level> </filter>
--> </appender> <appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender"> <discriminator> <key>filename</key> <DefaultValue>c:/test</DefaultValue> </discriminator> <sift> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>C:/test.log</file> <prudent>false</prudent> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <FileNamePattern>${filename}-%d{yyyyMMdd}.%i.log.gz</FileNamePattern> <maxHistory>30</maxHistory> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>20MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <ImmediateFlush>false</ImmediateFlush><!-- 緩存 --> <pattern>[%d{yyyyMMdd HH:mm:ss.SSS}] %-5level [%thread][%logger:%line]- %msg%n</pattern> </layout> </appender> </sift> </appender> <!-- 過濾第三方日誌--> <logger name="org.apache.cxf" level="error"/> <!-- 開發環境level設置為ALL打印和記錄所有日誌,生成環境建議修改為ERROR或WARN避免產生大量日誌 --> <root level="debug"> <appender-ref ref="SIFT"></appender-ref> <appender-ref ref="STDOUT"></appender-ref> </root> </configuration>

logback.xml的完整指南參考https://logback.qos.ch/manual/configuration.html。

web.xml中的配置:

<context-param>  
    <param-name>logbackConfigLocation</param-name>  
    <param-value>classpath:logback.xml</param-value>  
</context-param> 

log4j升級到logback