logback替换成log4j

fyy151617 fyy151617     2023-04-27     697

关键词:

1.背景

 logback和log4j的创始人设计的另一种日志开源组件,中文官网是http://www.logback.cn/.

 logback和log4j区别和优势,简而言之就是logback更轻,更快,性能更好.具体的可以上官网查看.

2.项目中的替换,项目中暂时还没有替换,自己单独做的替换.

   mybatis版本是3.2.8,框架是ssm.

   2.1 添加jar包,总共有三个核心jar包

  <!--logback日志jar包-->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.25</version>
    </dependency>

<dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-core</artifactId>
  <version>1.2.3</version>
</dependency>

<dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-classic</artifactId>
  <version>1.2.3</version>
</dependency>

  原来项目中使用的是log4j+slf4j,现在替换成logback_slf4j,所以可能会产生冲突.

       技术图片

  解决办法是:删除slf4j-log4j12-1.6.4.jar这个jar包

      2.2 打印执行的sql语句需要配置两个地方

        mybatis-config.xml: 

<setting name="logImpl" value="STDOUT_LOGGING" />

  logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>
                %dHH:mm:ss.SSS [%thread] %-5level %logger36 - %msg%n
            </pattern>
        </encoder>
    </appender>
    <logger name="java.sql.Connection" level="ERROR" />
    <logger name="java.sql.Statement" level="ERROR" />
    <logger name="java.sql.PreparedStatement" level="ERROR" />
    <logger name="com.hyit.appdev.x.x.dao" level="DEBUG"/>
     <root level="DEBUG">
        <appender-ref ref="STDOUT"></appender-ref>
    </root>
</configuration>

 打印结果:  

技术图片

 可以看出连查询出的结果都一并打印了出来.

 修改一下配置文件:

 技术图片

 打印结果,没有rows了:

 技术图片

 2.3 将打印输出到文件(这一步我并没有实现...不知道什么原因,只能在控制台输出,不能输出到文件)

   logback.xml增加配置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <property name="LOG_HOME" value="D:workprojectlogspoint"/>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>
                %dyyyy-MM-dd HH:mm:ss.SSS [%thread] %-5level %logger36 - %msg%n
            </pattern>
        </encoder>
    </appender>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>$LOG_HOME/spring.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <FileNamePattern>$LOG_HOME/spring.%dyyyy-MM-dd-HH.%i.log</FileNamePattern>
            <MaxHistory>20</MaxHistory>
            <MaxFileSize>500MB</MaxFileSize>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%dyyyy-MM-dd HH:mm:ss.SSS [%thread] %-5level %logger50 - %msg%n</pattern>
        </encoder>
    </appender>
     <!--<logger name="com.hyit.appdev" level="DEBUG"></logger>
     <logger name="com.hyit.appdev.x.x.dao" level="DEBUG"></logger>-->
    <logger name="java.sql.Connection" level="ERROR" />
    <logger name="java.sql.Statement" level="ERROR" />
    <logger name="java.sql.PreparedStatement" level="ERROR" />
   <!-- <logger name="com.hyit.appdev.x.x.dao" level="DEBUG"/>-->
     <root level="DEBUG">
        <appender-ref ref="STDOUT"></appender-ref>
         <appender-ref ref="FILE" />
    </root>
</configuration>

 并没有生效,百度解决方案在mybatis-config.xml中增加下面这条语句也没有用:

<setting name="logImpl" value="SLF4J" />

  

把日志从log4j转换成logback的经历

参考技术A既然log4j1.x出问题了,之前用logback的时候又觉得挺爽了,那么就抓紧换吧,老规矩,方案先行。经过一番调查研究,制定如下战略:对上面的几个jar解释下:这个可以通过idea的maven插件的ShowDependencies功能查看有那些包... 查看详情

log4j升级到logback

...现在log4j已经基本上不更新很久了,但实际上升级log4j到logback最大的难度并不在于本身的替换,而是现有大量的三方jar依然使用log4j,以至于无法100%的exclude掉,所以很有可能是无法做到纯粹将log4j升级到logback的。在我们的很多系... 查看详情

logback的使用笔记

...了英文文档,发现暂时用不到,以后再整理2017-04-0900:57:26logback是一个开源的日志组件,是log4j的作者开发的用来替代log4j的。 logback由三个部分组成,logback-core,logback-classic,logback-access。其中logback-core是其他两个模块的基础。lo... 查看详情

log4j

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

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

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

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

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

log4j+slf4j管理日志项目迁移logback+slf4j

...理要转换成logbacak的日志管理。介于之前并未深究log4j和logback日志,所以做起来也很是头疼,不得不查询资料问别人,才勉强完成,所以记录一下从头的步骤,以供别人参考,有不对地方还请大神斧正。首先提供一下log4j和slf4j以... 查看详情

logback与log4j比较

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

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

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

logback与log4j比较

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

springboot配置logback日志

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

logback日常应用总结(代码片段)

一、logback简介:logback-classic是log4j的一个改良版本。此外logback-classic完整实现SLF4JAPI使你可以很方便地更换成其它日志系统如log4j或JDK14Logging。二、特点如下:1、基于我们先前在log4j上的工作,logback重写了内部的实现&... 查看详情

日志框架--logback(代码片段)

logback背景介绍:SLF4J(SimpleLoggingFacadeforJava)是一个日志API接口,SLF4J提供TRACE,DEBUG,INFO,WARN,ERROR五种级别,而log4j和logback就是对SLF4J的具体实现。logback的性能优于log4j。logback-core:其它两个模块的基础模块logback-classic:它是log4j的一... 查看详情

多应用中间的日志使用,log4j,log4j2,logback三个日志框架为例

多应用中间的日志使用,log4j,log4j2,logback三个日志框架为例​​分别使用三个日志框架建好测试​​​​log4j​​​​log4j2​​​​logback​​​​上面的三个同时引入一个应用中​​​​将日志统一使用slf4j标准​​​​不能修改p... 查看详情

springboot实践:logback日志配置

1、logback是什么?工作中一直用的是log4j日志框架,接触了SpringBoot后,因为logback是默认框架,才开始进行了解。来看下官网的相关介绍。 可以看到,logback是log4j的进化版,是为了替代log4j的。logback分三个模块:logback-core:核... 查看详情

logback基本入门(代码片段)

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

logback的使用和logback.xml详解

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

logback日志小记(代码片段)

优势看了一下Logback的官方文档,说换成LogBack的原因大概有一下几个:    1.说是logBack的设计开发和log4j是同一批人员,重写了内核,习惯上总体跟log4j一样,不会有太多生疏感。在一些关键路径上性能快乐很多,初始化的内... 查看详情