JCL 日志门面

JCL( Jakarta Commons Logging ),是 Apache 提供的一个 通用日志 API 。用户可以自由选择第三方的日志组件作为具体实现,像 Log4j 或 JDK 自带的 JUL 。

common-logging 会通过动态查找的机制,在程序运行时自动找出真正使用的日志框架。其内部有一个 Simple logger 的简单实现,但是功能很弱,所以 common-logging 通常都是配合着 Log4j 以及其他日志框架来使用。

使用它的好处就是,代码依赖是 common-logging 而非 Log4j 或 JUL 的 API, 避免了和具体日志框架 API 的直接耦合。也就是面向接口开发,不再依赖具体的实现类,可以根据实际需求,灵活的切换日志框架。统一的 API,统一的配置管理便于项目日志的维护工作。

JCL 有两个基本的抽象类:Log(日志记录器)、LogFactory(日志工厂,负责创建 Log 实例)。

导入依赖:


        commons-logging
        commons-logging
        1.2

        junit
        junit
        4.12

代码示例:

package com.jcl;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Test;

public class JclTest {
    @Test
    public void test01() {
        // JCL使用原则:有Log4j则优先使用,没有任何第三方日志框架则默认使用JUL
        Log log = LogFactory.getLog(JclTest.class);
        log.info("info信息");
    }
}

运行结果: 可以看出使用了 JDK 的 JUL 日志框架。

七月 01, 2022 7:52:12 上午 com.jcl.JclTest test01
信息: info信息

添加依赖:


    log4j
    log4j
    1.2.17

创建配置: log4j.properties 文件

#配置日志级别,引用控制器
log4j.rootLogger=INFO,console
#配置控制台输出器
log4j.appender.console=org.apache.log4j.ConsoleAppender
#配置自定义格式器
log4j.appender.console.layout=org.apache.log4j.PatternLayout
#配置自定义转换模式
log4j.appender.console.layout.conversionPattern=[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5p] [%t] [%-4rms] [%c#%M-%L] %m%n

再次运行: 可以看出使用了 Log4j 日志框架。

[2022-07-01 07:53:33.453] [INFO ] [main] [0   ms] [com.jcl.JclTest#test01-13] info信息

Original: https://www.cnblogs.com/bybeiya/p/16439432.html
Author: 北涯
Title: JCL 日志门面

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/585893/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • openssh升级

    bash;gutter:false; ssh -V</p> <p>cp -a /etc/ssh/sshd_config /etc/ssh/sshd_conf…

    Linux 2023年6月7日
    081
  • CentOS 用户与群组

    Linux 系统中存在一个超级用户 root ,可以做任何操作。Linux 系统中每个用户都有自己独立的账户,有些命令运行需要切换 root 身份,用户是分组的。 1.1、切换用户…

    Linux 2023年6月8日
    081
  • 最新版Linux以root登陆后,无声音、桌面无图标的原因分析

    近两年几乎所有的Linux发行版,以root登陆后无声音、桌面无图标。 声音好处理,这是因为声音服务程序因为安全问题, 不推荐在Root环境下运行; 且本身Linux并不推荐在Ro…

    Linux 2023年6月14日
    0153
  • SQL45 将titles_test表名修改为titles_2017

    本题链接本题省略表结构。需要用到RENAME TABLE子句,该子句可实现一或多个表名称的修改。子句语法为: RENAME TABLE tbl_name TO new_tbl_na…

    Linux 2023年6月13日
    085
  • 剑指offer计划18( 搜索与回溯算法中等)—java

    1.1、题目1 剑指 Offer 55 – II. 平衡二叉树 1.2、解法 递归和下一面一题的结合版,abs去绝对值判断两边的差,然后递归isBalanced来遍历二…

    Linux 2023年6月11日
    057
  • Spring Boot连接数据库,从MySql5.13飞跃到MySql8.0.18的坑

    Spring Boot连接数据库,从MySql5.13飞跃到MySql8.0.18的坑 1.驱动名 驱动包用的是:mysql-connector-java-8.0.18.jar 驱…

    Linux 2023年6月7日
    082
  • 【Leetcode】64. 最小路径和

    给定一个包含非负整数的 m&#xA0;x&#xA0;n网格 grid,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动…

    Linux 2023年6月6日
    098
  • Prometheus+Grafana监控-基于docker-compose搭建

    前言 Prometheus Prometheus 是有 SoundCloud 开发的开源监控系统和时序数据库,基于 Go 语言开发。通过基于 HTTP 的 pull 方式采集时序数…

    Linux 2023年6月7日
    085
  • windows系统命令行cmd查看显卡驱动版本号CUDA

    好看请赞,养成习惯:) 本文来自博客园,作者:靠谱杨, 转载请注明原文链接:https://www.cnblogs.com/rainbow-1/p/16656547.html 关于…

    Linux 2023年6月14日
    0110
  • linux编译安装nginx

    本文升级过程,适用于大部分nginx编译版本 常用编译选项说明nginx大部分常用模块,编译时./configure –help以–without开头的都默认安装。 –prefix…

    Linux 2023年5月27日
    081
  • sed用法

    基础sed命令 sed OPTIONS… [SCRIPT] [INPUTFILE…] 常用的选项: -n,–quiet: 不输出模式空间中的内容 -i: 直…

    Linux 2023年6月6日
    0123
  • docker search和pull超时

    练习时用docker查找镜像或者pull镜像时总是超时,折腾一圈发现是 时钟同步的问题,实验环境的时间偏差太大,重新同步一次就ok了。 #ntpdate cn.pool.ntp.o…

    Linux 2023年6月14日
    080
  • 音视频技术入门课- 03 如何做音视频的封装和转码

    视频转码主要涉及编码压缩算法(Encoding)、格式封装操作 (Muxing)、数据传输 (例如 RTMP、RTP)、格式解封装(Demuxing)、解码解压缩算法(Decodi…

    Linux 2023年6月7日
    053
  • IIC挂死问题解决过程

    猜测1:认为IIC device程序有问题 检查1:查看程序发现有可能溢出的部分,使用IIC 工具刷过量数据到slave,未出问题。 猜测2:认为IIC device寄存器进入异常…

    Linux 2023年6月6日
    0107
  • Linux上传下载神器之 lrzsz

    在开发的过程中,经常遇到 需要在 Linux 和 Windows 之间上传下载文件的情况 这时,一般都是使用 FTP 或者 WinSCP 工具进行上传下载, 虽然也能解决问题,但是…

    Linux 2023年6月13日
    084
  • ip、ifconfig 和 route命令介绍与网络配置

    linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者。使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务。ifconfig是net-tools中…

    Linux 2023年6月6日
    083
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球