日志框架新版综合总结

Java日志管理系统 在程序运行过程中,日志非常重要。是记录程序运行状况,寻找bug,维护稳定性的重要工具。但市面上的日志系统十分繁多,于是在这里记录并整理。如有错误,请评论区留言告知。 日志门面与日志产品 日志门面 日志门面又称日志接口,它并不是真正的日志实现,但是对上层提供了一套统一的API,故在代码层面可以使用统一的写法,而引入不同的适配器来实现不同的日志输出。 主流的日志门面有 JCL(Jakarta Commons Logging) slf4j(Simple Logging Facade for Java) 日志实 阅读详情

1.日志适配器

日志适配器:使用slf4j作为门面,底层实现为其他日志实现,至少要引两个包

一个slf4j:一个第三方日志包,然后根据时间先后关系,像log4j2在slf4j之前上市,那么如果要使用slf4j+log4j2,那么还需要引入一个包log4j-slf4j-impl,用来适配兼容性,这个包就是日志适配器。如果使用slf4j+logback,那么就不需要额外引入适配器,因为已经兼容。

举例:项目使用slf4j+log4j2

<dependency>

            <groupId>org.apache.logging.log4j</groupId>

            <artifactId>log4j-core</artifactId>

            <version>2.17.0</version>

        </dependency>

        <dependency>

            <groupId>org.apache.logging.log4j</groupId>

            <artifactId>log4j-api</artifactId>

            <version>2.17.0</version>

        </dependency>

        <!--slf4j与log4j2的适配器-->

        <dependency>

            <groupId>org.apache.logging.log4j</groupId>

            <artifactId>log4j-slf4j-impl</artifactId>

            <version>2.17.0</version>

        </dependency>

        <dependency>

            <groupId>org.slf4j</groupId>

            <artifactId>slf4j-api</artifactId>

            <version>1.7.25</version>

        </dependency>

常用适配器

A. jul

        <dependency>

            <groupId>org.slf4j</groupId>

            <artifactId>slf4j-jdk14</artifactId>

            <version>2.0.0-alpha1</version>

        </dependency>

    B. log4j

        <dependency>

            <groupId>org.slf4j</groupId>

            <artifactId>slf4j-log4j12</artifactId>

            <version>2.0.0-alpha1</version>

        </dependency>

      

    C.log4j2

         <dependency>

            <groupId>org.apache.logging.log4j</groupId>

            <artifactId>log4j-slf4j-impl</artifactId>

            <version>2.14.1</version>

        </dependency>

    D. logback

         <dependency>

            <groupId>ch.qos.logback</groupId>

            <artifactId>logback-classic</artifactId>

            <version>1.3.0-alpha5</version>

        </dependency>

2.日志桥接器

日志桥接器:桥接器重写了log4j2,类名功能都一样,但是实现了slf4j接口。引入桥接器,排除实现。完美替代log4j2的类。将第三方日志的接口桥接到slf4j上,因为slf4j可以和各种日志实现搭配使用,所以桥接器的作用就是将当前的日志换到slf4j,然后要想使用其他的日志实现,就可以引入对应的坐标,这样就起到一个系统里面的日志切换效果。

桥接器命名规范一般是:实现类-over/to-门面

举例实时业务场景:现在系统用的是log4j2,但是现在想换成logbak,代码不用动。

  1. 注释/删除项目中的log4j2依赖坐标
  2. 正常情况下,这个时候代码就会报错,因为没有对应的类了,此时就需要对应的桥接器了,引入log4j-to-slf4j-2.x.x.jar,这个包里面有和log4j2一样路径的类,这样代码导包就不会报错了。
  3. 引入slf4j+logbak包即可

常用日志桥接器:

A. log4j --> slf4j

        <dependency>

            <groupId>org.slf4j</groupId>

            <artifactId>log4j-over-slf4j</artifactId>

            <version>2.0.0-alpha1</version>

        </dependency>

       B. log4j2 --->slf4j

        <dependency>

            <groupId>org.apache.logging.log4j</groupId>

            <artifactId>log4j-to-slf4j</artifactId>

            <version>2.14.1</version>

        </dependency>

       C. jul--->slf4j

        <dependency>

            <groupId>org.slf4j</groupId>

            <artifactId>jul-to-slf4j</artifactId>

            <version>2.0.0-alpha1</version>

        </dependency>

      

       D. jcl --->slf4j

        <dependency>

            <groupId>org.slf4j</groupId>

            <artifactId>jcl-over-slf4j</artifactId>

            <version>2.0.0-alpha1</version>

        </dependency>

log4j转log4j2

<dependency>

     <groupId>org.apache.logging.log4j</groupId>

     <artifactId>log4j-1.2-api</artifactId>

       <version>2.9.1</version>

</dependency>

日志门面和日志框架介绍 1 如何让系统中所有的日志都统一到slf4j 每一个日志文件的实现框架都有自己的配置文件。使用slf4j后,配置文件还是做成日志实现框架自己本身的配置文件 1. 将系统中的其他日志框架先排除出去 2. 用中间包替换原有的日志框架 3. 我们导入slf4j其他的实现 ... 阅读详情

相关推荐

SpringBoot使用Logback日志框架与综合实例

Spring Boot 支持很多种日志框架。通常情况下,这些日志框架是由一个日志抽象层和一个日志实现层搭建而成的。日志抽象层是为记录日志提供的一套标准且规范的框架,其作用在于为记录日志提供接口。日志实现层是由日志抽象层实现的框架。Spring Boot 默认使用的日志抽象层是 Slf4j,默认使用的日志实现层是 Logback 框架。Slf4j 是当下主流的日志抽象层。

pan_junbiao的博客 1112

学习Java日志框架之——搞懂日志门面(JCL+SLF4J)

门面模式(Facade Pattern),是GoF23种设计模式其中之一,也称之为外观模式,其核心为:外部与一个子系统的通信必须通过一个统一的外观对象进行,使得子系统更易于使用。外观模式主要是体现了Java中的一种好的封装性。更简单的说,就是对外提供的接口要尽可能的简单。简单日志门面(Simple Logging Facade For Java) SLF4J主要是为了给Java日志访问提供一套标准、规范的API框架,其主要意义在于提供接口,具体的实现可以交由其他日志框架,例如log4j和logback等。

秃了也弱了 2978

SpringBoot支持哪些日志框架?推荐和默认的日志框架是哪个?

本文详细探讨了Spring Boot所支持的日志框架,包括Logback、Log4j2等,并阐述了这些框架的特点和使用方法。

程序员Forlan的博客 3840

slf4j门面适配各种日志实现

日志门面:slf4j jcl门面为common-logging。通过适配器将jcl门面转换为slf4j实现。

三月泡生长在阳春三月天,把鲜红的美味奉献给世人 254

一文详解 C++ 日志框架

日志框架 - 一个经过专门设计的实用程序,用于规范应用程序的日志记录过程。

青春不老,奋斗不止! 8924

R语言分类变量的统计描述

三篇介绍了连续变量的统计描述的R语言相关函数,计算数值的相关统计指标。本文介绍分类变量的统计描述及如何在R语言中实现。 不同于连续变量,分类变量的统计描述主要是汇总分类变量各类别例数及百分比。 1、table()函数 ...

zsc943290710的博客 1万+

【日志篇】java日志的桥接器和适配器和异步日志

五花八门的日志框架 门面 slf4j common-log 实现 jul log4j logback 等 解决jar包中应用的日志框架各不相同,使用适配器和桥接器可以很好的解决 桥接器命名规范一般是 实现类-over/to-门面 (eg: log4j-over-slf4j) 桥接器实现原理- 已上面jar包为例,桥接器重写了log4j,类名功能都一样,但是实现了slf接口。引入桥接器 排除实现 完美替代log4j的类。 ...

u013657993的专栏 1004

计算机控制液压同步顶升系统,PLC四点多点同步顶升系统,同步液压顶升系统

PLC同步顶升系统系统可分为5个部分:液压泵站、PLC计算机控制系统、液压终端、位移压力检测与人机界面操作系统,位移同步精度1mm,同步控制点数:4,8,12,16,20,40,80,99;产品特点:高速置零、低速顶升,升降速度可以任意控制;液压千斤顶内置式(或外置)位移、压力传感器、均载阀,保证了顶升系统在恶劣工作环境下的高可靠性;均载阀的过载保护功能,避免了多缸顶升时常见的胀缸事故;先进的进油...

weixin_30093045的博客 1434

解决90%的日志适配问题:Apache Dubbo集成SLF4J全指南

Apache Dubbo作为一款高性能的RPC和微服务框架,在企业级应用中被广泛采用。日志系统作为应用监控与问题排查的核心组件,其适配配置往往让开发者头疼。本文将带你通过SLF4J实现Dubbo日志的标准化集成,轻松解决各类日志框架适配难题。 ## 为什么选择SLF4J作为Dubbo日志门面? SLF4J(Simple Logging Facade for Java)作为日志门面框架,能够统一

gitblog_01192的博客 393

S32DS新建工程、编译调试下载、导入工程详细介绍

新建了一个工程之后,下面简单介绍下基本的UI界面。其中最左下角那个是界面,这个界面很重要,是图形化配置界面,然后可以根据这些配置自动生成代码。其中,左边那些配置文件,都是系统帮我们创建好了的,我们其实可以直接用就行。有PE工具的调试,以及Jlink工具的调试。我目前使用到PE工具调试可以查看寄存器值,而Jlink调试查看不了寄存器值。连接了开发板之后,点击Debug就可以吧程序下载到芯片上了,而且可以进入到调试界面。

luobeihai的博客 2万+

RV1126平台JD9366触摸屏驱动移植实战:从源码到烧录的完整指南

本文详细介绍了在RV1126平台上移植JD9366触摸屏驱动的完整流程,从环境准备、源码获取到驱动配置、内核编译、设备树设置以及固件烧录与测试验证。通过实战经验分享和常见问题排查,帮助开发者高效完成触摸屏驱动移植,适用于嵌入式Linux开发场景。

weixin_30872337的博客 409

在SpringBoot项目中优雅地记录日志(日志框架选型、SpringBoot默认的日志实现框架、如何使用日志框架、如何切换日志的具体实现框架、与日志相关的配置、记录日志的最佳实践)

在SpringBoot项目优雅地地记录日志(日志框架选型、SpringBoot默认的日志实现框架、如何使用日志框架、如何切换日志的具体实现框架、与日志相关的配置、记录日志的最佳实践)

聂可以的博客 7480

Autosar Os降低CPU负载的方案总结

由于各个项目的实际场景不尽相同,可能需要有针对性的对症优化。如果你还有别的一些优化手段欢迎留言交流。

3678

【JAVA日志框架】JUL,JDK原生日志框架详解。

Java日志体系混乱?系列文章第一篇,五分钟,快速掌握JDK原生日志框架——JUL。

BugMan的博客 5198

STM32 cubeMX配置串口重定向

这篇文章主要讲解什么是串口重定向,为什么要串口串口重定向。使用printf函数和上位机通信是非常的方便的。希望大家都能够掌握。

m0_49476241的博客 4572

SAP Event Mesh 简介

Get Started with Messaging for Decoupled Communication Step 1: What is the SAP Event Mesh service? SAP Event Mesh 是一种完全托管的服务,用于连接应用程序、服务和系统,以便它们可以通过消息和事件相互交互。 它通过引入中央消息代理取代了传统的点对点通信。 虽然点对点通信适用于在有限数量的发送方和接收方之间共享数据,但可扩展性很快就会成为一个问题。 SAP Event Mesh 解决了这个问题,并确保

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1243

Java系统中常用日志框架

文章目录日志介绍日志概念日志作用Java中常用日志框架Java常用日志框架之间的关系日志门面框架日志实现框架 日志介绍 日志概念 日志:在计算机领域,日志文件(logfile)是一个记录了发生在运行中的操作系统或其他软件中的事件的文件,或者记录了在网络聊天软件的用户之间发送的消息1。 日志记录(Logging):是指保存日志的行为。最简单的做法是将日志写入单个存放日志的文件。 日志级别2:...

Frank的博客 1万+

[Dify实战] 项目复盘助手:自动拉数据、生成复盘报告

本文介绍如何利用Dify平台构建自动化项目复盘助手,解决传统人工复盘效率低、易遗漏等问题。系统通过自动拉取Git/Jira等数据源,计算关键指标后,由LLM生成结构化复盘报告。文章详细讲解了数据采集、指标计算、Prompt设计等核心模块的实现,并分享了完整Workflow搭建步骤。实践表明,该系统能将复盘耗时从4小时缩短至10分钟,显著提升数据准确率和执行频率。最后总结了数据一致性、输出质量等常见问题的解决方案,强调Dify+LLM组合可实现复盘流程的自动化流水线。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 118

java日志框架简介(日志框架选型)

java 日志框架介绍

銠槍--突廆孒 4383

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

springboot集成日志框架

前言 相信很多为接触过实际开发项目的小伙伴一般都没打过日志,就算有可能也是随便log一下,并没有深入的学习过。甚至会打出下面这样的日志,如果还是学生还能原谅,如果已经工作了,赶紧学习一下本篇回去趁人还没发现摸摸的把日志改了吧… logger.error(e); logger.error(e.getMessage); logger.error("错误信息:" + e); 框架选型 JCL、SLF4...

bugpool的博客 3375

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

SpringBoot的日志【日志框架、日志配置】(超详细)

SpringBoot与日志【日志框架、日志配置】日志框架 日志框架

『愚』的博客 6139

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Java 日志框架

Java 日志框架

快乐的小三菊的博客 2257

目前最全的日志框架详解,你要的全都有

日志框架概述 什么是日志 在日常开发中,程序并不会每一次都向着我们设想的方向运行出结果,这个时候就想搞清楚程序哪一步具体是什么状态,便于我们排查问题。你可能会想到直接在控制台 system.out 输出结果,但如果系统上线, system.out 会带来严重的新能问题。显然是不可取的 已经上线的系统,如果发生令人意想不到的bug,我们需要一些信息为我们排查追溯复现问题提供依据。 日志文件是用于记录系统操作事件的文件集合,很多时候,日志可能是我们了解应用程序如何执行的唯一方式。 现有的日志框架 JUL(j

qq_28623375的博客 7678

java日志框架详解

java开发常用日志框架详解

hjji12的博客 3125

新版devstack查询日志

由于新版devstack使用systemd的方式来管理OpenStack各项服务,所以查询日志的方式也有所不同,现记录:systemd附带的主要功能之一是日志记录,这是一种访问日志的综合方式。这需要管理员通过journalctl来进行访问。journalctl拥有强大的查询功能,我们从一些常见的选项开始。查看特定的服务日志:sudo journalctl -f --unit devstack@n-...

Janni的博客 2458

Springboot中使用日志框架

对于一个完整的项目而言,通过日志可以随时观察系统运行情况,日志功能是必不可少的,平时开发项目的时候想知道程序运行情况一般可以使用sysout.print(),打印一些关键的代码或者通过debug查看运行状态,使用sysout.print()会出现代码多余,于是市场上了出现许多记录运行状态的框架。

程序员一博 3824
上一篇: Linux重启java服务脚本
下一篇: SpringBoot项目中对请求进行限流实现
VIP006008
博客等级 码龄5年 350粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值