当前位置: 首页 > news >正文

电商网站开发平台用什么人开发wordpress项目下载

电商网站开发平台用什么人开发,wordpress项目下载,装修设计费收费标准,一份电子商务网站建设规划书日志框架出现的历史顺序:Log4j → JUL → JCL → slf4j → logback → log4j2 一、背景 在前面博文中,我们分别讲述了常用的2个日志框架:JUL(Java Util Logging)、Log4J。那么如何选择使用哪一个呢? 根据项…

日志框架出现的历史顺序:Log4j → JUL → JCL → slf4j → logback → log4j2

一、背景

在前面博文中,我们分别讲述了常用的2个日志框架:JUL(Java Util Logging)、Log4J。那么如何选择使用哪一个呢?

根据项目需求而定,在项目设计之初,功能比较单一简单,那么我们可以使用JUL日志框架,使用起来非常灵活,也不需要引入第三方依赖,随着我们项目升级,迭代维护,功能会越来越完善,简单的日志实现框架就不能满足我们的业务需求,那么就要进行日志升级!

如果我们从JUL日志实现框架切换为Log4j的话,代码会受到冲突影响,虽然Log4j在1.2以后,为了迎合JUL的设计思想,也把自己代码改成logger了,但它的日志级别和配置信息还是有一定的差异化,如果我们的日志代码有一万行,那么都要进行修改,这无疑是增加了很多工作量

二、JCL的诞生

        为了解决这个问题,apache组织就站出来了,它就将当时比较主流的日志实现框架,例如 JUL、Log4j 将代码统一成一套API,后期软件开发阶段,只需要关联这套统一的API,就可以操作某一个日志实现框架的日志记录了,代码无需发生改变。

以面向接口的方式,来操作具体的实现。一种解耦合的思想,这个技术就是:JCL

比如web应用需要进行日志记录的话,不再直接依赖log4j、jdk14等日志实现了,而是依赖JCL这套统一的接口API,它会帮助我们调用具体的日志实现:

三、JCL 是什么?


JCL 全称为Jakarta Commons Logging,是Apache提供的一个通用日志API。

它是为 “所有的Java日志实现” 提供一个统一的接口,它自身也提供一个日志的实现,但是功能非常弱(SimpleLog)。所以一般不会单独使用它,它允许开发人员使用不同的具体日志实现工具:Log4j,JDK自带的日志(JUL)

JCL 有两个基本的抽象类:Log(基本记录器)和 LogFactory(负责创建Log实例)

       快速入门案例:

        引入依赖:

         <dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.2</version></dependency>

        代码示例:

        // 获取日志记录器对象Log log = LogFactory.getLog(logDemo.class.getName());// 输出日志log.info("info"); // 程序运行信息,数据库的连接、网络、IO操作等

        说明:
        1、首先跟log4j 和 JUL创建日志对象不同的是,JCL是用LogFactory创建的对象,创建的类型是Log不是Logger。
        2、其次底层调用Log4j 或 JUL(Java util logging) ,具体调用哪个取决于引入了哪个组件,上述例子没有引入Log4j依赖,因此它底层用的是JUL日志框架。
        ·

        如果我们引入Log4j依赖:

<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.13</version>
</dependency>

         更改引入类型,运行代码,会提示:

会提示:找不到logger对象的appenders处理器,它希望我们设置并初始化一个系统配置信息,因为Log4j是需要初始化配置,或者引入配置文件的,所以要先加入配置文件,配置文件就不讲了,前面的log4j已经讲过,直接拷贝进来就好。
再次运行代码就可以了。

四、JCL原理

其内部主要通过LogFactory 日志工厂去加载具体的日志实现:

1. 通过LogFactory动态加载Log实现类

说明:Log类是一个接口,其实现它有4个日志框架

  • SimpleLog:JCL的内置日志实现
  • Log4JLogger:log4j 日志框架
  • Jdk14Logger:JUL(Java Util Logging)
  • Jdk13LumberjackLogger:Jdk老版本的内置日志实现

 2. 日志门面支持的日志实现数组
public class LogFactoryImpl extends LogFactory {.....private static final String[] classesToDiscover = new String[]. {"org.apache.commons.logging.impl.Log4JLogger", "org.apache.commons.logging.impl.Jdk14Logger", "org.apache.commons.logging.impl.Jdk13LumberjackLogger", "org.apache.commons.logging.impl.SimpleLog"};.....}


➳ 说明:日志工厂其内部有一个加载日志的数组,加载顺序是按照数组顺序来的,这也解释了为什么入门案例中引入了Log4J,JCL内部日志框架就从JUL切换至Log4J了。

3. 具体实现代码

for(int i = 0; i < classesToDiscover.length && result == null; ++i) {
    result = this.createLogFromClass(classesToDiscover[i], logCategory, true);
}
➳ 说明:通过日志数组顺序加载日志框架,如果没有找到,则继续加载下一个,否则直接返回。

✈ 源码断点查看执行流程


1. 测试类中断点debug模式进入

2. 进入到内部实现,首先初始化的是一个日志工厂 getFactory()

2. 我们暂时不关心它的实现,因此直接跳出 getFactory()

3. 继续点击进入 ,会进入到getInstance(clazz) 方法内部

4. getInstance(clazz)方法如下,其实际进行了一次封装,因此进入到内部实际初始化代码中

5. 对象初始化代码实现如下,进入点击进入到 discoverLogImplementation 方法

6.  discoverLogImplementation 方法才是最终加载具体日志框架的实现,for循环加载日志数组,第一个是log4j,如果加载成功,则直接返回,否则按照顺序往下遍历加载

7. for 循环加载方法 this.createLogFromClass(),其内部实现是通过反射进行记载日志框架的

8. 由于我们增加了log4j依赖,因此直接可以拿到log4j的类名,进行反射获取到,最后直接返回

SimpleLog:JCL的内置日志实现
Log4JLogger:log4j 日志框架
Jdk14Logger:JUL(Java Util Logging)
Jdk13LumberjackLogger:Jdk老版本的内置日志实现

日志门面技术(3):JCL(Jakarta Commons Logging)_jakartacommonsloggingimpl-CSDN博客

http://www.15wanjia.com/news/192020.html

相关文章:

  • 黄冈建设局网站怎样建外贸公司网站
  • 徐州网站建设 网站推广html制作个人简历代码带照片
  • 做饲料机械的网站企业网站的建设 英文摘要
  • php网站好吗怎样做免费网站的推广
  • 厚街响应式网站建设展馆设计案例
  • 网站运营服务中心建设方案wordpress移除google相关
  • 东莞网站建设营销平台的广州市口碑seo推广
  • 网站打开慢原因如何弄自己的网站
  • 建行个人网站济南网站制作 泉诺
  • 佛山免费建站公司seo网页优化服务
  • 建网站用什么工作站在线开发
  • PHP做克隆网站信誉好的邢台做网站
  • vps建两个网站要两个程序池吗电影网站建设教程下载
  • 正规的高端网站制作公司高端 网站开发
  • 西安企业网站搭建吴桥县网站建设公司
  • 网站建设推广选stso88效果好洛阳哪家网站做的好
  • 佛山网站建设电话lol视频网站源码
  • 宁波企业网站seo公司关键词排名优化
  • emlog做企业网站域名网站建设方案书模板
  • 免费的视频模板网站做搜索引擎网站
  • 如何搭建自己的网站服务器地址网站呼叫中心 建设工期
  • 深圳市门户网站建设福州网站建设fjfzwl
  • 山东建设银行官网网站推广平台网站制作
  • 纯html5 网站刷推广链接
  • 垣宝建设工程集团网站做一个同城app得多少钱
  • 免费网站开发合同wordpress主题背景图
  • 重庆网站建设夹夹虫公司网站建设图片
  • 做网站前景怎样百度账号一键登录
  • 网站上投放广告wordpress 去掉底部
  • 护肤品网站建设的摘要DW做的网页用网站打不开