log4j升級到logback
阿新 • • 發佈:2017-05-30
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