博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
日志框架浅析(三)
阅读量:6084 次
发布时间:2019-06-20

本文共 1672 字,大约阅读时间需要 5 分钟。

日志转调

简介

当我们应用配置了slf4j&&logback的组合,但是我们引用的jar包里面用的却用了Log4j来执行日志输出,那么怎么统一控制,让jar包里面的的日志也能按照我们工程配置的日志输出格式输出呢?日志转调这个时候就可以大显身手了

解析

以log4j转调为例,依赖转调包log4j-over-slf4j.jar,这个jar包创建了大部分log4j.jar里面的类(类名包名都保持一致,但是实现不一样),关键是对Logger类和其父类Category 的重新创建.

重写过后的Category类增加了对org.slf4j.Logger的引用,并且在创建Logger的时候同时创建对应的org.slf4j.Logger

public class Category {        public void info(Object message) {          differentiatedLog(null,CATEGORY_FQCN,LocationAwareLogger.INFO_INT,          message, null);        }                void differentiatedLog(Marker marker, String fqcn, int level,         Object message, Throwable t) {            String m = convertToString(message);                if (locationAwareLogger != null) {                    locationAwareLogger.log(marker, fqcn, level, m, null, t);                } else {                    switch (level) {                    case LocationAwareLogger.TRACE_INT:                        slf4jLogger.trace(marker, m);                        break;                    case LocationAwareLogger.DEBUG_INT:                        slf4jLogger.debug(marker, m);                        break;                    case LocationAwareLogger.INFO_INT:                        slf4jLogger.info(marker, m);                        break;                    case LocationAwareLogger.WARN_INT:                        slf4jLogger.warn(marker, m);                        break;                    case LocationAwareLogger.ERROR_INT:                        slf4jLogger.error(marker, m);                        break;                    }              }          }      }

当调用logger.info的时候再内部实际调用的是slf4jLogger.info();

小结

log4j-over-slf4j是通过重新创建log4j.jar里面的类来实现转调

转载地址:http://lhkwa.baihongyu.com/

你可能感兴趣的文章
cad图纸转换完成的pdf格式模糊应该如何操作?
查看>>
Struts2与Struts1区别
查看>>
网站内容禁止复制解决办法
查看>>
Qt多线程
查看>>
我的友情链接
查看>>
想说一点东西。。。。
查看>>
css知多少(8)——float上篇
查看>>
NLB网路负载均衡管理器详解
查看>>
水平添加滚动条
查看>>
PHP中”单例模式“实例讲解
查看>>
VS2008查看dll导出函数
查看>>
VM EBS R12迁移,启动APTier . AutoConfig错误
查看>>
atitit.细节决定成败的适合情形与缺点
查看>>
Mysql利用binlog恢复数据
查看>>
我的友情链接
查看>>
用yum安装mariadb
查看>>
一点IT"边缘化"的人的思考
查看>>
WPF 降低.net framework到4.0
查看>>
搭建一个通用的脚手架
查看>>
开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
查看>>