log4j升级到logback

太白的技术博客 太白的技术博客     2022-09-02     395

关键词:

虽然现在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> 

 

java日志框架学习--logback和log4j2--下

Java日志框架学习--LogBack和Log4j2--下LogbackLogback中的组件Logback配置文件日志输出格式使用演示配置文件输出到控制台输出到控制台和文件输出到控制台,文件和html日志拆分过滤器异步日志自定义LoggerLog4jLog4j2简介Log4j2特征应用演示... 查看详情

logback与log4j比较

更快的执行速度:基于我们先前在log4j上的工作,logback重写了内部的实现,在某些特定的场景上面,甚至可以比之前的速度快上10倍。在保证logback的组件更加快速的同时,同时所需的内存更加少。logback-classic非常自然的实现了SLF... 查看详情

log4j/log4j2/logback混用问题

...了解标题提到的几个日志框架,建议了解一下log4j/log4j2/logback简单使用说明,本节中pom依赖前面的内容;log4jdemolog4j2demologbackdemologdemojava项目一般会选择一种日志框架,但很难保证当前项目依赖的三方组件会选用和当前项目相同... 查看详情

springboot使用log4j2&logback输出日志到ekl

...3、ELK环境搭建4、SpringBoot配置示例4.1、Log4j2方式配置4.2、Logback方式配置1、ELK介绍ELK是Elasticsearch,Logstash,Kibana的缩写,Elasticsearch是开源分布式搜索引擎,提供搜集、分析、存储数据等功能,Logstash主要是用来日志的搜集、分析、... 查看详情

springboot日志管理配置logback-spring.xml

...日志框架JCL使用;Log4j2:apach旗下的关于log4j的升级版;Logback:是基于slf4j接口实现的一套日志框架组件;(Logback是由log4j创始人设计的又一个开源日志组件。)JUL(javautillog):仿log4j实现的日志框架,是sun旗下的,(也就是在我们... 查看详情

log4j

1、Logback为取代log4j而生   Logback是由log4j创始人CekiGülcü设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback-classic和logback-access。2、Logback的核心对象:Logger、Appender、Layout    查看详情

利用logback+slf4j日志采集整合到sba

...;可以按包名控制日志级别,只输出某些包打的日志......logback是一个日志采集系统的实现;slf4j是日志系统的接口,如同jdbc一样定义了一套接口,是一个日志门面可实现多个日志系统间快速切换。logback基础功能包含三个组成部... 查看详情

日志框架logback相对于log4j的优势

日志框架logback相对于log4j的优势。更快的实现 Logback的内核重写了,在一些关键执行路径上性能提升10倍以上。而且logback不仅性能提升了,初始化内存加载也更小了。 非常充分的测试 Logback经过了几年,数不清小时的... 查看详情

异步日志

...entsoveritspredecessor,Log4j1.x,andprovidesmanyoftheimprovementsavailableinLogbackwhilefixingsomeinherentproblemsinLogback’sarchitecture.log4j2是log4j1.x的升级版,参考了logback的一些优秀的设计,并且修复了一些问题,因此带来了一些重大的提升,主要有: ... 查看详情

logback与log4j比较

 摘自:https://www.cnblogs.com/smile361/p/7592684.htmllogback与log4j比较更快的执行速度:基于我们先前在log4j上的工作,logback重写了内部的实现,在某些特定的场景上面,甚至可以比之前的速度快上10倍。在保证logback的组件更加快速的... 查看详情

Gradle/Java:如何安全升级 log4j?

...最安全方法是什么?我的项目没有明确使用log4j(它使用logback),但它有许多依赖项会带来易受攻击的版本(【问题讨论】:欢迎您!如果您要编辑帖子以阐明您 查看详情

log4j+logback+slf4j+commons-logging的关系与调试(转)

log4j+logback+slf4j+commons-logging的关系与调试 从Log4j迁移到LogBack的理由 http://www.tuicool.com/articles/beeeYvF 为什么要使用SLF4J而不是Log4J  查看详情

是否有技术原因更喜欢使用 logback 而不是 log4j?

】是否有技术原因更喜欢使用logback而不是log4j?【英文标题】:Aretheretechnicalreasonstopreferusinglogbackinsteadoflog4j?【发布时间】:2010-09-1518:47:51【问题描述】:新项目是否应该使用logback而不是log4j作为日志框架?或者换个说法:\'logba... 查看详情

WebLogic 12C 集中式 Log4J 或 Logback 配置

】WebLogic12C集中式Log4J或Logback配置【英文标题】:WebLogic12CcentralizedLog4JorLogbackconfiguration【发布时间】:2013-02-2122:26:11【问题描述】:我想配置一个集中式登录到WebLogic12C。根据业务需求,我必须在生产环境中使用Syslog,我必须在... 查看详情

logback的使用和logback.xml详解(代码片段)

一、logback的介绍Logback是由log4j创始人设计的另一个开源日志组件,官方网站:http://logback.qos.ch。它当前分为下面下个模块:logback-core:其它两个模块的基础模块logback-classic:它是log4j的一个改良版本,同时它完整实现了slf4jAPI使你... 查看详情

将 Logback 中的应用程序日志与 log4j 中的 Spark 日志分开

】将Logback中的应用程序日志与log4j中的Spark日志分开【英文标题】:SeparatingapplicationlogsinLogbackfromSparkLogsinlog4j【发布时间】:2017-06-2620:05:54【问题描述】:我有一个使用Spark的ScalaMaven项目,我正在尝试使用Logback实现日志记录。我... 查看详情

logback日志打印怎么实现换行

logback类似于log日志体系,可以将一些日志信息输出到tomcat文件夹内,示例如下:logback.xml里面的内容配置:UTF-8$logbase%dyyyy-MM-dd.log.html$logbase.%dyyyy-MM-dd.log.html.zip使用的时候可以这样定义变量:Loggerlogger=Lo...参考技术A/n单个斜杠紧... 查看详情

springboot配置logback日志

Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback-classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个改良版本。此外logback-classic完整实现SLF4JAPI使你可以... 查看详情