全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

如何将应用的log4j替换成logback详解

前言

最近考虑到log4j很久不更新、性能相对弱,以及一些项目本身的原因,经过较为谨慎的考虑,决定改用logback。如果你已经对log4j很熟悉,你也可以很快上手logback。如果你喜欢使用log4j,你也许会迷上使用logback。迁移还是比较顺利的,花了1个小时左右就搞定了,做个简单的笔记。

方法如下

(1) 首先去掉所有log4j相关的依赖,主要有:

<dependency>
 <groupId>log4j</groupId>
 <artifactId>log4j</artifactId>
</dependency>

以及:

<dependency>
 <groupId>org.slf4j</groupId>
 <artifactId>slf4j-log4j12</artifactId>
</dependency>

(2) 为项目添加以下依赖:

<!-- logback日志配置开始 -->
<dependency>
 <groupId>ch.qos.logback</groupId>
 <artifactId>logback-core</artifactId>
</dependency>
<dependency>
 <groupId>ch.qos.logback</groupId>
 <artifactId>logback-access</artifactId>
</dependency>
<dependency>
 <groupId>ch.qos.logback</groupId>
 <artifactId>logback-classic</artifactId>
</dependency>
<dependency>
 <groupId>org.slf4j</groupId>
 <artifactId>log4j-over-slf4j</artifactId>
</dependency>
<!-- logback日志配置结束 -->

(3) 删除项目/src/main/resources目录下的log4j.properties,并在该目录添加logback.xml文件,logback.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
 <Target>System.out</Target>
 <encoder>
 <pattern>%date [%level] [%thread] %logger{80} [%file : %line] %msg%n</pattern>
 </encoder>
 </appender>
 <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
 <encoder>
 <pattern>%date [%level] [%thread] %logger{80} [%file : %line] %msg%n</pattern>
 </encoder>
 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
 <fileNamePattern>${catalina.home}/logs/yzf/sql%d{yyyy-MM-dd}.log</fileNamePattern>
 <!-- 保留 30天数据,默认无限-->
 <MaxHistory>30</MaxHistory>
 </rollingPolicy>
 </appender>
 <logger name="org.springframework" level="INFO" />
 <logger name="org.apache" level="INFO" />
 <logger name="com.itmuch" level="WARN" />
 <root level="INFO">
 <appender-ref ref="CONSOLE" />
 <appender-ref ref="FILE" />
 </root>
</configuration>

拓展

slf4j-api、slf4j-log4j12以及log4j之间什么关系?

几乎在每个jar包里都可以看到log4j的身影,在多个子工程构成项目中,slf4j相关的冲突时不时就跳出来让你不爽,那么slf4j-api、slf4j-log4j12还有log4j他们是什么关系?我把自己了解的和大家简单分享一下:

slf4j:Simple Logging Facade for Java,为java提供的简单日志Facade。Facade:门面,更底层一点说就是接口。他允许用户以自己的喜好,在工程中通过slf4j接入不同的日志系统。更直观一点,slf4j是个数据线,一端嵌入程序,另一端链接日志系统,从而实现将程序中的信息导入到日志系统并记录。 

因此,slf4j入口就是众多接口的集合,他不负责具体的日志实现,只在编译时负责寻找合适的日志系统进行绑定。具体有哪些接口,全部都定义在slf4j-api中。查看slf4j-api源码就可以发现,里面除了public final class LoggerFactory类之外,都是接口定义。因此,slf4j-api本质就是一个接口定义。

下图比较清晰的描述了他们之间的关系:

 

当系统采用log4j作为日志框架实现的调用关系:

首先系统包含slf4j-api作为日志接入的接口;

at compile时slf4j-api中public final class LoggerFactor类中

private final static void bind() 方法会寻找具体的日志实现类绑定,主要通过

StaticLoggerBinder.getSingleton();语句调用

slf4j-log4j12:链接slf4j-api和log4j中间的适配器。它实现了slf4j-apiz中StaticLoggerBinder接口,从而使得在编译时绑定的是slf4j-log4j12的getSingleton()方法

log4j:这个是具体的日志系统。通过slf4j-log4j12初始化Log4j,达到最终日志的输出。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。


# logback替换log4j  # log4j  # 切换  # logback  # Java中 SLF4J和Logback和Log4j和Logging的区别与联系  # slf4j与jul、log4j1、log4j2、logback的集成原理  # jdk-logging log4j logback日志系统实现机制原理介绍  # jcl与jul log4j1 log4j2 logback日志系统机制及集成原理  # slf4j jcl jul log4j1 log4j2 logback各组件系统日志切换  # Logback与Log4j2日志框架性能对比与调优方式  # 项目为什么引入log4j而不是logback代码  # 浅谈spring boot 集成 log4j 解决与logback冲突的问题  # 从log4j切换到logback后项目无法启动的问题及解决方法  # 绑定  # 自己的  # 的是  # 都是  # 是个  # 如果你  # 让你  # 多个  # 很久  # 并在  # 他不  # 我把  # 花了  # 可以看到  # 考虑到  # 做个  # 只在  # 这篇文章  # 也许会  # 你也可以 


相关文章: C#如何在一个XML文件中查找并替换文本内容  建站之星安装后如何配置SEO及设计样式?  深入理解Android中的xmlns:tools属性  如何用5美元大硬盘VPS安全高效搭建个人网站?  如何用西部建站助手快速创建专业网站?  广州建站公司哪家好?十大优质服务商推荐  高端云建站费用究竟需要多少预算?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  黑客如何利用漏洞与弱口令入侵网站服务器?  如何生成腾讯云建站专用兑换码?  python的本地网站制作,如何创建本地站点?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  如何快速搭建高效简练网站?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  南平网站制作公司,2025年南平市事业单位报名时间?  网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?  Python文件管理规范_工程实践说明【指导】  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  建站与域名管理如何高效结合?  如何解决ASP生成WAP建站中文乱码问题?  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  创业网站制作流程,创业网站可靠吗?  招商网站制作流程,网站招商广告语?  免费ppt制作网站,有没有值得推荐的免费PPT网站?  建站VPS选购需注意哪些关键参数?  如何用低价快速搭建高质量网站?  专业公司网站制作公司,用什么语言做企业网站比较好?  建站之星如何助力网站排名飙升?揭秘高效技巧  建站之星导航配置指南:自助建站与SEO优化全解析  广州美橙建站如何快速搭建多端合一网站?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  为什么Go需要go mod文件_Go go mod文件作用说明  教学网站制作软件,学习*后期制作的网站有哪些?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  实例解析Array和String方法  如何通过虚拟主机空间快速建站?  网站制作服务平台,有什么网站可以发布本地服务信息?  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  公司网站制作价格怎么算,公司办个官网需要多少钱?  高防服务器如何保障网站安全无虞?  再谈Python中的字符串与字符编码(推荐)  保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?  黑客入侵网站服务器的常见手法有哪些?  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  Python多线程使用规范_线程安全解析【教程】  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。