虽然现在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的更多相关文章

  1. Log4j、Log4j 2、Logback、SFL4J、JUL、JCL的比较

    Log4j.Log4j 2.Logback.SFL4J.JUL.JCL的比较 之前就知道有好几种日志框架,但是一直都是听别人讲,在什么时候该用何种logger,哪种logger比较好……一直对Log4 ...

  2. 从Log4j迁移到LogBack的理由

    英文原文:Reasons to prefer logback over log4j 无论从设计上还是实现上,Logback相对log4j而言有了相对多的改进.不过尽管难以一一细数,这里还是列举部分理由 ...

  3. log4j升级到log4j2

    log4j升级到log4j2 1.导入依赖 log4j2应尽量使用同一版本,否则可能出现不兼容的情况 <!-- log4j2 start --> <!-- log4j-1.2-api ...

  4. 54. spring boot日志升级篇—logback【从零开始学Spring Boot】

    在<44. Spring Boot日志记录SLF4J>章节中有关相关的介绍,这里我们在深入的了解下logback框架. 为什么要使用logback ? --在开发中不建议使用System. ...

  5. 将spark默认日志log4j替换为logback

    1.将jars文件夹下apache-log4j-extras-1.2.17.jar,commons-logging-1.1.3.jar, log4j-1.2.17.jar, slf4j-log4j12 ...

  6. springboot的log4j配置与logback配置

    log4j配置的依赖 <!-- 删除pom.xml文件中所有对日志jar包的引用--> <dependency> <groupId>org.springframew ...

  7. 谁再悄咪咪的吃掉异常,我上去就是一 JIO

    又到周末了,周更选手申请出站~ 这次分享一下上个月碰到的离奇的问题.一个简单的问题,硬是因为异常被悄咪咪吃掉,过关难度直线提升,导致小黑哥排查一个晚上. 这个美好的晚上,本想着开两把 LOL 无限火力 ...

  8. log4j平稳升级到log4j2

    一.前言 公司中的项目虽然已经用了很多的新技术了,但是日志的底层框架还是log4j,个人还是不喜欢用这个的.最近项目再生产环境上由于log4j引起了一场血案,于是决定升级到log4j2. 二.现象 虽 ...

  9. JCL、SLF4J、Log4J、Log4J2、LogBack和JUL之间的关系,你搞清楚了吗?

    写在前面 日志组件是我们平时开发过程中必然会用到的组件.在系统中正确的打印日志至少有下面的这些好处: 调试:在程序的开发过程中,必然需要我们不断的调试以达到程序能正确执行的状态 .记录日志可以让开发人 ...

随机推荐

  1. mac-Navicat Premium 12连接Oracle

    安装及破解: https://pan.baidu.com/s/1ip0oM9p856k34t3cIExa7Q(提取码请留言) Navicat连接了Oracle数据库 测试连接失败,提示:hostnam ...

  2. check process id exists

    kill -0 pid sending the signal 0 to a given PID just checks if any process with the given PID is run ...

  3. Hybrid设计--核心交互

    普通网页中跳转使用a标签,这里我们要对跳转进行更多的干预,所以将全站的跳转收口到框架层,用forward去实现.拒绝用a和window.location.如果我想对所有跳转做一个处理,开动画或者对跳转 ...

  4. gcc常用命令使用

    gcc编译文件过程 .c文件到 .i文件 到.s(汇编文件) 到.o文件,再到可执行文件 .c到.i 实操一下: test.c文件如下 : #include <stdlib.h> #inc ...

  5. jQuery UI 中Tabs Ajax载入时出现Http 304的问题

    最近发现jQueryUI中tabs的ajax载入,总是会出现304未修改的情况,明明数据有变化的么~应该返回200才对. 于是尝试在beforeLoad中设置: ui.ajaxSettings.cac ...

  6. Adobe Flash Builder 调试器无法连接,无法进行调试,构建停止在57%

    参考:https://blog.csdn.net/wuboyaogun1/article/details/9105373 谷歌浏览器下载Flash debugger :Download the Win ...

  7. Mysql date,datetime的区别以及相互转换

    参考:https://blog.csdn.net/a3025056/article/details/62885104/ 在数据库中一直有这三个时间类型有点搞不太清楚. 今天就来说一下之间的区别,其实是 ...

  8. Spark_JGroupByKey

    package core.java; import java.util.Arrays; import java.util.List; import org.apache.spark.SparkConf ...

  9. Java -- 深入浅出GC自动回收机制

    1,去年开春去美团和58同城面试的时候第一个问题基本上都是来说说 Java GC机制,当时年轻的我也很耿直,直接说不会,现在想想还是当时年轻啊.刚好这段时间被各大论坛的面试题刷屏,见到最多的也是也是这 ...

  10. HTML标签-----article、aside、figure、nav和section

       article    <article> 标签定义独立的内容 <!DOCTYPE html> <html> <head> <meta cha ...