日志框架 由Log4j替换为Logback

项目中 日志框架 由Log4j替换为Logback

1.为什么要替换?

    下面引用Logback官方的一句话:“某些关键操作,比如判定是否记录一条日志语句的操作,其性能得到了显著的提高。这个操作在LogBack中需要3纳秒,而在Log4J中则需要30纳秒。LogBack创建记录器(logger)的速度也更快:13毫秒,而在Log4J中需要23毫秒。更重要的是,它获取已存在的记录器只需94纳秒,而Log4J需要2234纳秒,时间减少到了1/23。跟JUL相比的性能提高也是显著的”。

    注:JUL:java.util.logging

2.怎么替换

    2.1 替换jar包   

    所需jar包:

        logback-access-0.9.24.jar

        logback-classic-0.9.24.jar

        logback-core-0.9.24.jar

        slf4j-api-1.6.1.jar

        jcl-over-slf4j-1.6.1.jar(此jar用于兼容 Spring等依赖包中的org.apache.commons.logging.*)

     需要删除的jar包:

         log4j-1.2.17.jar 

         slf4j-log4j12-1.7.2.jar(如果有,也删除)

    2.1 替换日志配置文件

      log4j 框架需要log4j.properties,而logback 的配置文件是logback.xml格式的。如果你 的配置文件是log4j.properties ,那么恭喜你,很简单,直接到以下地址转换:

     log4j.properties to logback.xml Translator  (http://logback.qos.ch/translator/)即可。如果不是,那么要自己写logback.xml配置了。然后把logback.xml放到相应的读取路径下,删掉log4j配置文件即可。

    2.3 代码转换

   

    如果用的是org.apache.commons.logging.* 恭喜你,可以完全不用更改动代码,即可完成迁移(参考jcl-over-slf4j-1.6.1.jar)。

    如果你用的是org.apache.log4j.Logger,那么就要修改代码:

    1)     import org.apache.log4j.Logger;  à  importorg.slf4j.Logger;    import org.slf4j.LoggerFactory;

    2)     private static Logger LOG =Logger.getLogger(ServerRunner.class);  à   private static Logger LOG =LoggerFactory.getLogger(ServerRunner.class);

    3)     如果你对log4j有过封装,那么只替换一个地方即可;如果没有的话,恐怕每个输出日志的类文件都要改动了。工作量很大,推荐一个文本替换工   具:SearchAndReplace。同时建议对logback封装一层,方便维护。



       最简单的方法就是用文本替换工具(推荐使用SearchAndReplace),替换掉log4j代码。

      如图:(其他代码替换方式类同)

       

2.4  初始化日志配置

public static void initLogback() {
		LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
		JoranConfigurator configurator = new JoranConfigurator();
		configurator.setContext(lc);
		lc.reset();
		try {
			configurator.doConfigure("/config/logback.xml");
		} catch (JoranException e) {
			e.printStackTrace();
		}
	}
     如果logback.xml在类路径下,可以直接运行,省去上面的代码。

3 完成

    至此,已经完成整个替换过程,编译,运行即可。   

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值