1. JCL

全称为Jakarta Commons Logging,是Apache提供的一个通用日志API。是日志门面的一种实现方式,另外一种日志门面的实现方式是Slf4j。

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

JCL 有两个基本的抽象类:

  • Log(基本记录器)
  • LogFactory(负责创建Log实例,通过LogFactory动态加载Log实现类)。

1.1 JCL示例代码

首先创建一个普通的Maven工程:

然后导入相关的依赖:

    <dependencies><!--        单元测试依赖--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><!--        JCL--><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.2</version></dependency></dependencies>

示例代码:

JCLTest.java

package com.tian.logs;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Test;public class JCLTest {@Testpublic void testQuick() throws Exception {// 获取 log日志记录器对象Log log = LogFactory.getLog(JCLTest.class);// 日志记录输出log.info("hello jcl");}
}

运行结果(默认使用 JUL 实现):

现在引入 Log4j 的依赖:

        <!--        log4j--><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>

再次运行刚刚的代码:

现在我们创建Log4j的配置文件:

log4j.properties

# 指定 RootLogger 顶级父元素默认配置信息
# 指定日志级别=trace,使用的 appenderw 为=console
log4j.rootLogger=trace,console
# 指定控制台日志输出的 appender
log4j.appender.console=org.apache.log4j.ConsoleAppender
# 指定消息格式 layout
log4j.appender.console.layout=org.apache.log4j.PatternLayout
# 指定消息格式的内容
log4j.appender.console.layout.conversionPattern=[%-10p]%r  %l %d{yyyy-MM-dd HH:mm:ss.SSS} %m%n

再次运行上面的测试代码:


1.2 使用日志门面的好处

  1. 面向接口开发,不再依赖具体的实现类。减少代码的耦合
  2. 项目通过导入不同的日志实现类,可以灵活的切换日志框架
  3. 统一API,方便开发者学习和使用
  4. 统一配置便于项目日志的管理


Java日志框架 -- JCL日志门面(JCL概念介绍、JCL示例)相关推荐

  1. 日志框架(3) : 日志门面、JCL介绍、SLF4J介绍

    文章目录 日志门面 日志门面概述 门面模式(外观模式) 日志门面 常见的日志框架及日志门面 JCL简介 SLF4J SLF4J简介 SLF4J桥接技术 SLF4J特点 SLF4J集成日志实现(jul, ...

  2. Java NIO框架Mina、Netty、Grizzly介绍与对比

    Java NIO框架Mina.Netty.Grizzly介绍与对比 原文地址:https://blog.csdn.net/e765741668/article/details/45234711 Min ...

  3. Java日志框架 -- SLF4J日志门面(入门案例、SLF4J优点、SLF4J日志绑定、SL4J桥接旧的日志框架)

    1. SLF4J日志门面 JCL日志门面逐渐被淘汰了,因为他无法动态的扩展具体的日志实现框架. 简单日志门面(Simple Logging Facade For Java) SLF4J主要是为了给Ja ...

  4. SpringBoot和日志框架:缘由,日志框架的选择,使用,自定义配置,日志框架切换

    日志框架 缘由 如果像我们初学者,想知道代码运行到哪里了,一般都是会System.out.println() 进行输出到控制台查看代码运行的情况,好知道代码错误在哪里 但是大型的系统里面,如果有很多的 ...

  5. Spring Boot与日志 ——日志框架、日志配置||SLF4j使用||SpringBoot日志关系||切换日志框架

    1.日志框架 SLF4j使用 1.如何在系统中使用SLF4j 以后开发的时候,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面的方法: 给系统里面导入slf4j的jar和 lo ...

  6. ZAP日志框架lumberjack日志归档库的分析使用

    本次我们从官方例程的角度出发,来分析学习如何让zap日志框架动起来 一. Zap官方例程 1.加糖版 logger, _ := zap.NewProduction() defer logger.Syn ...

  7. C++plog库,轻量级日志框架(日志库)

    文章目录 为何建议程序员在项目中使用第三方日志库 第三方日志库plog的优势 plog主要头文件及使用方法解释 plog/Log.h plog/Appenders/ColorConsoleAppend ...

  8. C语言编写的一个简单通用的日志框架----支持日志等级,日志颜色,打印到文件等设置

    日常工作中常常需要输出日志进行调试,本文提供了一个C语言编写的日志框架.可以输出日志到文件或者是终端,支持日志等级设置,不同日志等级可以设置不同的颜色,另外还可以设置进程名.模块名.函数名等的输出,能 ...

  9. java slf4j日志框架_SLF4J - 日志框架 - 类库 - Java - 代码树

    JAVA简易日志门面(Simple Logging Facade for Java,缩写SLF4J),是一套包装Logging 框架的界面程式,以外观模式实现.可以在软件部署的时候决定要使用的 Log ...

  10. 日志门面和日志框架(SpringBoot日志实现)

    一.Springboot日志实现简介 SpringBoot是现今市场上最火爆用来简化spring开发的框架,springboot日志也是开发常用的日志系统.SpringBoot默认就是使用SLF4J作 ...

最新文章

  1. S6 edge+的多米诺骨牌效应:大屏的趋势
  2. C++ const成员和引用成员
  3. leetcode 1723. 完成所有工作的最短时间(二分+剪枝+回溯)
  4. 【安卓开发】AS神奇的报错:Cannot find AVD system path. Please define ANDROID_SDK_ROOT
  5. 请求网页时,怎么给我返回了一段 JavaScript 代码
  6. ubuntu快速清理磁盘垃圾
  7. python之celery使用详解一
  8. 在Java中将字符串转换为char数组,将char数组转换为String
  9. 用gambit学博弈论--完全信息动态博弈-博弈扩展式、博弈树(二)
  10. 屏蔽广告方法(Adblock 插件)
  11. CPU维护及故障处理
  12. 美国国立卫生研究院(NIH)江晓芳组诚聘生物信息学博士后
  13. 使用Matlab实现:Jacobi、Gauss-Seidel迭代
  14. 九度OJ北京航空航天大学2008机试题题解
  15. 微信 拒绝共享位置服务器,微信共享位置结束不了怎么办?如何解决问题?
  16. 中国无烟尼古丁袋市场深度研究分析报告(2021)
  17. 电脑使用cmd发送邮件——以QQ邮件为例
  18. 小程序怎么处理轮训ajax,微信小程序中使用Promise进行异步流程处理的实例详解...
  19. adb命令从手机端复制文件到PC
  20. javaScript与jQuery中Window对象

热门文章

  1. 行业案例 | 易安联零信任SDP解决方案,让企业经营更高效
  2. 嵌入式算法:STM32 F4xx 使用DSP实现cubic spline插值算法
  3. linux实现局域网IP欺骗dns域名解析
  4. 调音台docker教程_Docker实例教程[超详细](一)
  5. 驱动程序开发:SPI设备驱动
  6. neo4j实现Betweenness Centrality算法
  7. CodeBlocks安装与使用入门
  8. 大学信息技术基础 期末复习
  9. 蛋白质对中可能相互作用域的数目计算
  10. FreeBSD 下载 安装