log4j升级到logback
Posted 太白的技术博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了log4j升级到logback相关的知识,希望对你有一定的参考价值。
虽然现在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的主要内容,如果未能解决你的问题,请参考以下文章