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

日志logging学习(1)

目录

一、统一的日志门面。(抽象层)

二、常用的日志框架。

三、使用日志。

四、统一日志实现。

如何让系统的所有日志统一到slf4j?


一、统一的日志门面。(抽象层)

  • 日志的抽象层(logging-abstract)。在项目中再引入具体日志实现即可完成日志操作。

二、常用的日志框架。

  1. JUL(Java Util Logging)。Java原生日志。适合小型应用。日志实现
  2. JCL(Jakarta/Apache Commons Logging)。通用日志API。(日志门面)
  3. Log4j。(日志实现
  4. Log4j2。(日志实现
  5. Logback。(日志实现
  6. SLF4J(Simple Logging Facade for Java)。提供日志功能的抽象层(门面框架)。

其中spring框架默认使用:JCL、spring-boot-starter-logging采用:slf4j+logback。

三、使用日志。

  • 开发时,日志记录方法的调用,直接调用日志抽象层的方法,会自动的调用所引入的日志实现类的日志记录方法。

  • slf4j官方入门示例:SLF4J Manual。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;public class HelloWorld {public static void main(String[] args) {Logger logger = LoggerFactory.getLogger(HelloWorld.class);logger.info("Hello World");}
}

  • 除了使用导入日志抽象slf4j,还需要导入它对应支持它的实现类:如logback。不然会如官网所说的一样,调用日志记录的方法会输出null。


  • 每一个日志实现框架都有自己的配置文件。也就是如果使用slf4j后,配置文件还是做日志实现框架的配置文件。

四、统一日志实现。

  • 因为实际开发中,系统可能主要环境使用的slf4j+logback记录日志。但是还有其他集成框架也有自己的日志,如spring(commons-logging)、Hibernate (jboss-logging)、mybatis、xxx。
  • 想要做到统一,可以按照官网提供的思路去实现。Log4j Bridge。


  • 当主要环境使用的slf4j+log4j记录日志。因为在log4j设计的时,还不知道slf4j,所以需要额外的适配层。其他的框架的日志使用对应的替代品即可统一。


  • 综合上诉所说,可以总结一下统一日志的操作步骤。
  • 如何让系统的所有日志统一到slf4j?
  1. 将系统的其他日志框架先排除。
  2. 使用中间包(适配的jar)替换原有的日志框架。
  3. 再导入对应slf4j的其他日志实现框架。
http://www.dtcms.com/a/343874.html

相关文章:

  • Gemini 2.5 Flash-Lite与 DeepSeek-V3 深度对比:谁在性价比上更胜一筹?
  • 【typenum】 21 类型级别计算最大公约数(Gcd)
  • map和set的使⽤
  • 52 C++ 现代C++编程艺术1-禁止隐式转换关键字explicit
  • Qt中用于图像缩放的核⼼⽅法QPixmap::scaled
  • 编写Linux下设备驱动时两种方案:内核态驱动开发和用户态驱动开发
  • --- 使用OpenFeign来优雅的对服务进行调用 ---
  • vue2怎么修改el-table样式
  • 金融风控AI引擎:实时反欺诈系统的架构设计与实现
  • CTFSHOW | 其他篇题解(二)web417 - web437
  • 进程间通信-IPC机制
  • 【开发日记】SpringBoot 实现支持多个微信小程序的登录
  • 初始数据结构——反射、枚举与Lambda的奇幻冒险
  • 如何理解AP服务发现协议中“如果某项服务需要在多个网络接口上提供,则应为每个网络接口使用一个独立的服务器服务实例。”?
  • 《Linux 网络编程一:网络编程导论及UDP 服务器的创建与数据接收》
  • “我 / 店模式” 靠联盟 + 积分破局,实现三方共赢!
  • 【Oracle】内存管理实战指南:ASMM vs AMM 配置全解析
  • Rust Web开发指南 第一章
  • 服务发现实例和服务实例是不同的
  • 血管介入医疗AI发展最新方向与编程变革:从外周、神经到冠脉的全面解析
  • RabbitMQ面试精讲 Day 27:常见故障排查与分析
  • yggjs_rlayout使用教程 v0.1.0
  • Linux系统之Ubuntu安装cockpit管理工具
  • Jenkins发布spring项目踩坑——nohup java -jar发布后显示成功,但实际jps查询并未运行
  • React 学习笔记1 组件、State
  • 【Tech Arch】Hadoop YARN 大数据集群的 “资源管家”
  • 企业级知识库+智能客服地大模型对比表
  • 实现自己的AI视频监控系统-第一章-视频拉流与解码4(重点)
  • MATLAB启动路径MATLAB202X/bin更改问题
  • 【Python】-- 机器学习项目 - 基于逻辑回归算法的乳腺癌数据集分类