文档章节

spring中使用logback日志组件替换log4j

吕兵阳
 吕兵阳
发布于 2016/08/15 22:14
字数 270
阅读 114
收藏 1

logback比log4j的强大之处,请到logback的主页去看,我就不啰嗦了,你懂、或者不懂,logback就在那里,无比强大,傲视绝伦。

复制log4j-over-slf4j.jar,logback-classic.jar,logback-core.jar,jcl-over-slf4j.jar到lib目录,删除原有的log4j.jar。

 

创建一个新类

package com.boaotech.util;  
import javax.servlet.ServletContextEvent;  
import javax.servlet.ServletContextListener;  
import org.slf4j.Logger;  
import org.slf4j.LoggerFactory;  
import ch.qos.logback.classic.LoggerContext;  
import ch.qos.logback.classic.joran.JoranConfigurator;  
import ch.qos.logback.core.joran.spi.JoranException;  
/** 
 * @author Kiven Lee 
 * @version 1.0 
 */  
public class LogbackConfigListener implements ServletContextListener {  
    private static final Logger logger = LoggerFactory.getLogger(LogbackConfigListener.class);  
     
    private static final String CONFIG_LOCATION = "logbackConfigLocation";  
    @Override  
    public void contextInitialized(ServletContextEvent event) {  
        //从web.xml中加载指定文件名的日志配置文件  
        String logbackConfigLocation = event.getServletContext().getInitParameter(CONFIG_LOCATION);  
        String fn = event.getServletContext().getRealPath(logbackConfigLocation);  
        try {  
            LoggerContext loggerContext = (LoggerContext)LoggerFactory.getILoggerFactory();  
            loggerContext.reset();  
            JoranConfigurator joranConfigurator = new JoranConfigurator();  
            joranConfigurator.setContext(loggerContext);  
            joranConfigurator.doConfigure(fn);  
            logger.debug("loaded slf4j configure file from {}", fn);  
        }  
        catch (JoranException e) {  
            logger.error("can loading slf4j configure file from " + fn, e);  
        }  
    }  
    @Override  
    public void contextDestroyed(ServletContextEvent event) {  
    }  
}  

在web.xml中加入

<!--初始化日志配置文件 -->  
 <listener>  
     <listener-class>  
         com.boaotech.util.LogbackConfigListener  
     </listener-class>  
 </listener>  
 <context-param>  
     <param-name>logbackConfigLocation</param-name>  
     <param-value>WEB-INF/logback.xml</param-value>  
 </context-param>  

 

最后,在WEB-INF下新建logback.xml配置,配置请参考logback帮助手册。

经过这样的配置后,应用中所有使用log4j,common-logger的jar,均可正常通过logback实现日志输出。

© 著作权归作者所有

共有 人打赏支持
吕兵阳
粉丝 88
博文 275
码字总数 105273
作品 0
郑州
后端工程师
私信 提问
Spring Boot(十)Logback和Log4j2集成与日志发展史

一、简介 Java知名的日志有很多,比如:JUL、Log4j、JCL、SLF4J、Logback、Log4j2,那么这些日志框架之间有着怎样的关系?诞生的原因又是解决什么问题?下面一起来看。 1.1 JUL Java有自己的...

王磊的博客
10/30
0
0
spring boot(8)默认日志logback配置

1 日志简介 Spring Boot使用Commons Logging记录所有内部日志,但是它将底层日志实现打开,为Java.Util.Logging,Log4J2和Logback提供默认配置。 在每个案例中,loggers都预先配置,以使用控...

刘胜球
2017/10/31
0
0
spring与logback结合

在新项目中重新采用了logback日志组件,以前是log4j(为何换掉,可以到网上搜),由于以前使用log4j时,spring有结合log4j启动的类,但是logback现在还木有,到网上一搜都是自己写代码完成,后来发现原...

我是潮汐
2013/03/29
0
23
把日志从log4j转换成logback的经历

起因 我们的系统上了dubbo,dubbo默认就使用的log4j1.x,之前一直用的好好的,突然有一天发现报表服务不响应请求了,但是进程并没有挂,CPU、内存都正常,最后通过jstack发现是日志的线程死锁...

梦孤
2017/11/08
0
0
Java日志框架:SLF4J, Apache Common-Logging, Log4J和Logba

Log4j Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务 器、NT的事件记录器、UNIX Syslog守护进程等;用户也可以控...

凯文加内特
2015/05/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【58沈剑 架构师之路】1分钟了解MyISAM与InnoDB的索引差异

《数据库索引,到底是什么做的?》介绍了B+树,它是一种非常适合用来做数据库索引的数据结构: (1)很适合磁盘存储,能够充分利用局部性原理,磁盘预读; (2)很低的树高度,能够存储大量数据;...

张锦飞
15分钟前
1
0
代码优化----使用builder模式构造对象

看《effective java》的时候,创建对象章节提到使用builder模式来创建对象。觉得非常好用,做一个记录。以后应该就会这么写啦~~~~~~ 对于一个有很多属性的类,在为属性赋值时,通常会用到两种...

wuyiyi
16分钟前
2
0
一文带你看懂cookie,面试前端不用愁

本文由云+社区发表 在前端面试中,有一个必问的问题:请你谈谈cookie和localStorage有什么区别啊? localStorage是H5中的一种浏览器本地存储方式,而实际上,cookie本身并不是用来做服务器存...

腾讯云加社区
17分钟前
1
0
随行付微服务测试之接口测试和契约测试

背景 日常开发过程中,项目的接口通常由服务提供方约定和提供,微服务模式下接口被多个消费者调用更是常态,那么提供方接口的变更如何快速、高效、无遗漏的通知给消费者呢?另外,当一个ser...

马力-随行付
18分钟前
1
0
为什么Python是2019最值得学的编程语言?

对于那些从来没有学习编程小伙伴,Python 是最好的选择之一, Python 是一种清晰的语言,用缩进来表示程序的嵌套关系可谓是一种创举,把过去软性的编程风格升级为硬性的语法规定。再不需要在...

糖宝lsh
18分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部