Java日志组件介绍之一

一、前言

前段时间爆出Log4j安全漏洞的事情,XX云因未及时报告漏洞被工信部暂停网络安全威胁和漏洞信息共享平台合作单位(https://www.cstis.cn/),话说Java的日志组件真是多而且也比较乱,后续几篇文章就聊一下各日志组件的使用及区别。

注:话说XX云的ICON还在平台上是忘记删除了吗?

二、JDK内置日志

java.util.logging.Logger是从JDK1.4开始就存在,但项目中使用的比较少。

1、JDK自带日志默认配置文件

jre/lib/logging.properties

  • 默认仅配置了控制台输出,如果要输出文件需要把FileHandler配置起来。

  • 默认全局日志级别是INFO,可以定义某个包的日志级别。

  • 日志级别排序:SEVERE(最高) -> WARNING -> INFO -> CONFIG -> FINE -> FINER ->  FINEST(最低),如果设置为INFO级别,只会输出INFO及以上级别WARNING或者SEVERE,低级别的都不会输出。别外两个类型OFF代表关闭所有级别日志,ALL代表开放所有级别日志。

2、例子

  • 同名的logger仅会创建一个对象,内部LogManager.LoggerContext使用Map来保存已经创建的对象。

private final Hashtable<String,LoggerWeakRef>namedLoggers = new Hashtable<>();
  • 设定了日志级别仅能打印本级别及更高级级别日志信息。

3、自定义文件输出日志格式

上面代码会生成4个日志文件testLog0.log、testLog1.log、testLog2.log、testLog3.log,其中testLog0.log为空文件比较奇怪,是BUG吧?

默认文件的输出格式是XML,可以自定义日志输出格式。

三、common-logging

common-logging是apache提供的一个通用日志接口,可以让应用程序使用日志不依赖于具体的实现类,提供了对Log4j、jdk内置Log、Avalon LogKit进行简单的包装,在应用程序运行时会动态适配找到对应的日志实现类。

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

动态查找具体流程如下

commons-logging.properties

1、查找 org.apache.commons.logging.LogFactory配置对应的工厂类。

2、如果step1未找到则再通过SPI机制查找扫描所有依赖包中的 /META-INF

/services/org.apache.commons.logging.LogFactory,如果找到则使用里边的配置。

注:SPI机制的原理,见 SPI机制详解。

3、如果step2未找到,再通过查找

org.apache.commons.logging.Log属性配置,如果存在使用它的配置。如上面例子中commons-logging.properties配置为SimpleLog,则会使用commons-loggings提供的简单日志实现。这里可以配置log4j的实现类和工厂类。

4、如果step3未找到,则使用默认JDK内置实现java.util.logging.Logger, Jdk14Logger。

common-logging具体实现类有如下几种:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/155701.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mybatisplus 常用注解

文章目录 1.TableName1.1 引出问题1.2 解决问题a、使用注解解决问题b、使用全局配置解决问题 2.TableId2.1 引出问题2.2 解决问题2.3 TableId的value属性2.4 TableId的type属性 3.TbaleField3.1 情况一3.2 情况二 4.TableLogic4.1 逻辑删除4.2 实现逻辑删除 MyBatis-Plus提供的…

mysql出现Deadlock死锁排查

参考: https://www.yisu.com/zixun/664543.html 查看mysql死锁日志 show engine innodb status找到信息中LATEST DETECTED DEADLOCK这一行&#xff0c;可以看到mysql的死锁信息详情 ------------------------ LATEST DETECTED DEADLOCK ------------------------ 2023-10-31…

怎么搭建一个蛋糕店小程序?

在当今的移动互联网时代&#xff0c;很多企业纷纷选择了小程序作为推广和销售的利器。对于蛋糕店来说&#xff0c;创建一个小程序可以提高品牌知名度&#xff0c;增加销售渠道。下面&#xff0c;我们以【乔拓云】第三方平台为例&#xff0c;来介绍一个完整蛋糕店小程序的制作流…

[云原生1.] Docker--harbor私有仓库部署与管理

文章目录 1. Harbor概述1.1 什么是Harbor1.2 Harbor的组织构成1.2.1 Proxy1.2.2 Registry1.2.3 Core services1.2.4 Database&#xff08;harbor-db&#xff09;1.2.5 Job services1.2.6 Log collector&#xff08;harbor-log&#xff09; 1.3 Harbor的特点 2. 部署Harbor服务2…

批量去除pdf每一页相同未知的同样的内容

例如我想去除每一页右下角的www.alevelcollege.com ①打开acrobat pro ②编辑文件和图像 ③ctrlF输入字符串www.alevelcollege.com替换为空 ④鼠标点击替换 ⑤回车键按下不放&#xff0c;会自动翻页&#xff0c;直到翻页到最后一页。

AUTOSAR CAN协议栈架构总览介绍

Classic AUTOSAR层级架构简介 如下图是Classic AUTOSAR层级架构图,每个层主要功能如下 微控制器抽象层:使上层软件和微处理器型号无关,包含MCU中内部外设的驱动以及MCU内存映射的外部设备的驱动ECU抽象层:使上层软件和ECU硬件设计无关,包含ECU板上外部设备的驱动以及内部…

win32 读写UTF-8格式的文件的方法

1&#xff0c;写入数据 最开始是在写入数据前先写入三个字节 BYTE btHead[] { 0xEF,0xBB,0xBF }; ::WriteFile(hFile, btHead, 3, &dwWrite, 0); ::WriteFile(hFile, str, lstrlen(str)*sizeof(TCHAR), &dwWrite, 0);这样写入后文件样式为&#xff1a; 格式是UTF-8…

网络协议--TCP连接的建立与终止

18.1 引言 TCP是一个面向连接的协议。无论哪一方向另一方发送数据之前&#xff0c;都必须先在双方之间建立一条连接。本章将详细讨论一个TCP连接是如何建立的以及通信结束后是如何终止的。 这种两端间连接的建立与无连接协议如UDP不同。我们在第11章看到一端使用UDP向另一端发…

jsp 网上订餐Myeclipse开发mysql数据库web结构java编程计算机网页项目

选题目的 本设计课题为网上订餐系统设计与实现&#xff0c;提供无纸化点餐、支付&#xff0c;实现点餐快捷&#xff0c;方便管理。餐厅电子化是目前的潮流和趋势&#xff0c;大多数企业都将公司内部运营流程电子化。网上订餐管理系统应运而生&#xff0c;能够有效提高公司的管…

SpringBoot集成与应用Neo4j

文章目录 前言集成使用定义实体配置定义Repository查询方法方式一&#xff1a;Query方式二&#xff1a;Cypher语法构建器方式三&#xff1a;Example条件构建器方式四&#xff1a;DSL语法 自定义方法自定义接口继承自定义接口实现自定义接口neo4jTemplateNeo4jClient 自定义抽象…

要在VMware(虚拟机)上获取相机连接状态并显示在主界面上,您可以使用以下步骤:

在VM上安装相机驱动程序&#xff1a;确保VM中已安装对应的相机驱动程序&#xff0c;以便能够连接和使用相机。 检查相机连接状态&#xff1a;在VM中&#xff0c;打开设备管理器&#xff08;Device Manager&#xff09;并检查相机是否显示为已连接状态。如果显示为已连接&#…

2024年湖北黄冈建安ABC建筑企业专职安全员报名事项

2024年湖北黄冈建安ABC建筑企业专职安全员报名事项 专职安全员一般是指从事安全管理方面的工作&#xff0c;普遍的是建筑施工行业&#xff0c;建筑工地安全员&#xff0c;专职安全员C证&#xff0c;黄冈建筑安全员ABC-建筑单位在黄冈&#xff0c;只能在黄冈报考建筑安全员ABC。…