Java日志 -slf4j、logback、log4j2、springboot中日志

Java日志组件 slf4j 使用案例及原理分析 Java日志组件 slf4j 使用案例及原理分析 一、slf4j 日志组件介绍 项目开发,部署运行过程中,记录运行日志的重要性不言而喻。在项目线上运行的过程中,日志基本成为我们了解系统运行状态的唯一工具,因此,了解好Java中常见日志组件的使用以及原理,对我... 阅读详情

1、SLF4J的使用

简单日志门面(Simple Logging Facade For Java) SLF4J主要是为了给Java日志访问提供一套标准、规范的API框架,其主要意义在于提供接口,具体的实现可以交由其他日志框架,例如log4j和logback等。
当然slf4j自己也提供了功能较为简单的实现,但是一般很少用到。对于一般的Java项目而言,日志框架
会选择slf4j-api作为门面,配上具体的实现框架(log4j、logback等),中间使用桥接器完成桥接。

官方网站: https://www.slf4j.org/

SLF4J是目前市面上最流行的日志门面。现在的项目中,基本上都是使用SLF4J作为我们的日志系统。
SLF4J日志门面主要提供两大功能:

1、日志框架的绑定
2、日志框架的桥接

1.1 slf4j入门

1、添加依赖

<!--slf4j core 使用slf4j必須添加-->
<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-api</artifactId>
	<version>1.7.27</version>
</dependency>

<!--slf4j 自带的简单日志实现 -->
<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-simple</artifactId>
	<version>1.7.27</version>
</dependency>

2、编写代码

package com.atguigu.redis_springboot.log.slf4j;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Slf4jDemo {

   public static final Logger LOGGER =  LoggerFactory.getLogger(Slf4jDemo.class);

    @Test
    public void test01(){
        //打印日志信息
        LOGGER.error("error");
        LOGGER.warn("warn");
        LOGGER.info("info");
        LOGGER.debug("debug");
        LOGGER.trace("trace");

        String name = "zhangsan";
        Integer age = 19;

        LOGGER.info("用户信息:{},{}",name,age);

        // 将系统异常信息写入日志
        try {
            int i = 1 / 0;
        } catch (Exception e) {
            // e.printStackTrace();
            LOGGER.info("出现异常:", e);
        }
    }
}

3、测试结果
在这里插入图片描述

1.2 Slf4j如何绑定日志框架

1.2.1 绑定logback日志框架

1、导入依赖

<!--slf4j core 使用slf4j必須添加-->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.27</version>
        </dependency>
        <!--slf4j 自带的简单日志实现 -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.27</version>
        </dependency>

        <!--logback日志实现框架-->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>

2、代码实现和上面一样
3、测试
在这里插入图片描述
从结果上看,如果同时使用slf4jSimple和logback,那么slf4j底层会默认使用slf4jSimple简单日志框架。如果想要使用logback日志框架,则只需要将slf4j 自带的简单日志实现slf4j-simple依赖注释掉。

1.2.2 绑定log4j日志实现
<!--绑定log4j日志实现,需要导入适配器-->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.12</version>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
1.2.3 绑定日志实现小结

使用slf4j的日志绑定流程:

  1. 添加slf4j-api的依赖
  2. 使用slf4j的API在项目中进行统一的日志记录
  3. 绑定具体的日志实现框架
    1. 绑定已经实现了slf4j的日志框架,直接添加对应依赖
    2. 绑定没有实现slf4j的日志框架,先添加日志的适配器,再添加实现类的依赖
  4. slf4j有且仅有一个日志实现框架的绑定(如果出现多个默认使用第一个依赖日志实现)

2、Logback的使用

Logback主要分为三个模块:

  • logback-core:其它两个模块的基础模块
  • logback-classic:它是log4j的一个改良版本,同时它完整实现了slf4j API
  • logback-access:访问模块与Servlet容器集成提供通过Http来访问日志的功能
2.1 logback入门

1、添加依赖

<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-api</artifactId>
	<version>1.7.25</version>
</dependency>

<dependency>
	<groupId>ch.qos.logback</groupId>
	<artifactId>logback-classic</artifactId>
	<version>1.2.3</version>
</dependency>

2、java代码

//定义日志对象
public final static Logger LOGGER = LoggerFactory.getLogger(LogBackTest.class);

@Test
public void testSlf4j(){
	//打印日志信息
	LOGGER.error("error");
	LOGGER.warn("warn");
	LOGGER.info("info");
	LOGGER.debug("debug");
	LOGGER.trace("trace");
}
2.2 logback配置

logback会依次读取以下类型配置文件:

  • logback.groovy
  • logback-test.xml
  • logback.xml 如果均不存在会采用默认配置

1、logback组件之间的关系

  1. Logger:日志的记录器,把它关联到应用的对应的context上后,主要用于存放日志对象,也
    可以定义日志类型、级别。
  2. Appender:用于指定日志输出的目的地,目的地可以是控制台、文件、数据库等等。
  3. Layout:负责把事件转换成字符串,格式化的日志信息的输出。在logback中Layout对象被封
    装在encoder中

2、基本配置信息
logback.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 配置集中管理属性 -->
    <property name="pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %c [%thread] %-5level %msg%n"/>
    <!--
        日志输出格式:
        %-5level
        %d{yyyy-MM-dd HH:mm:ss.SSS}日期
        %c类的完整名称
        %M为method
        %L为行号
        %thread线程名称
        %m或者%msg为信息
        %n换行
    -->

    <!-- 日志文件存放目录 -->
    <property name="log_dir" value="E:/log"></property>

    <!-- 控制台日志输出的appender -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!--输出流对象 默认 System.out 改为 System.err-->
        <target>System.err</target>
        <!--日志格式配置-->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${pattern}</pattern>
        </encoder>
    </appender>

    <!-- 日志文件输出的appender -->
    <appender name="file" class="ch.qos.logback.core.FileAppender">
        <!--日志输出路径-->
        <file>${log_dir}/logback.log</file>
        <!--日志格式配置-->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${pattern}</pattern>
        </encoder>
    </appender>

    <!-- 生成html格式appender对象 -->
    <appender name="htmlFile" class="ch.qos.logback.core.FileAppender">
        <!--日志格式配置-->
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="ch.qos.logback.classic.html.HTMLLayout">
                <pattern>%level%d{yyyy-MM-dd HH:mm:ss}%c%M%L%thread%m</pattern>
            </layout>
        </encoder>
        <!--日志输出路径-->
        <file>${log_dir}/logback.html</file>
    </appender>

    <!--
        用来设置某一个包或者具体的某一个类的日志打印级别、以及指定<appender>。
        <logger>仅有一个name属性,一个可选的level和一个可选的addtivity属性
        name: 用来指定受此logger约束的某一个包或者具体的某一个类。
        level: 用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,如果未设置此属性,那么当前logger将会继承上级的级别。
        additivity:是否向上级logger传递打印信息。默认是true。
        <logger>可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个logger
    -->

    <!--
        也是<logger>元素,但是它是根logger。默认debug
        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
        <root>可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个 logger。
    -->
    <root level="ALL">
        <appender-ref ref="console"/>
        <appender-ref ref="file"/>
        <appender-ref ref="htmlFile"/>
    </root>

</configuration>

以上配置使用了控制台输出、日志文件、html文件形式输出三种方式,下面看一下效果
控制台效果:(因为是日志级别是ALL,所以日志都会打印)在这里插入图片描述
日志文件:
在这里插入图片描述
html文件:
在这里插入图片描述

3、日志文件拆分和归档的appender对象,添加一下配置信息到logback.xml文件中

(1)配置文件

<!-- 日志文件拆分和归档的appender对象-->
    <appender name="rollFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--日志格式配置-->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${pattern}</pattern>
        </encoder>
        <!--日志输出路径-->
        <file>${log_dir}/roll_logback.log</file>
        <!--指定日志文件拆分和压缩规则-->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--通过指定压缩文件名称,来确定分割文件方式-->
            <fileNamePattern>${log_dir}/rolling.%d{yyyy-MM-dd}.log%i.gz</fileNamePattern>
            <!--文件拆分大小-->
            <maxFileSize>1MB</maxFileSize>
        </rollingPolicy>
    </appender>

(2)java代码

@Test
    public void test01(){
        for (int i = 0; i < 10000; i++) {
            //打印日志信息
            LOGGER.error("error");
            LOGGER.warn("warn");
            LOGGER.info("info");
            LOGGER.debug("debug");
            LOGGER.trace("trace");
        }
    }

测试
在这里插入图片描述(3)如果想设置日志文件的日志级别,可以设置过滤器来实现,还可以自定义logger

<!-- 日志文件拆分和归档的appender对象-->
    <appender name="rollFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--日志格式配置-->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${pattern}</pattern>
        </encoder>
        <!--日志输出路径-->
        <file>${log_dir}/roll_logback.log</file>
        <!--指定日志文件拆分和压缩规则-->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--通过指定压缩文件名称,来确定分割文件方式-->
            <fileNamePattern>${log_dir}/rolling.%d{yyyy-MM-dd}.log%i.gz</fileNamePattern>
            <!--文件拆分大小-->
            <maxFileSize>1MB</maxFileSize>
        </rollingPolicy>

        <!--filter配置-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!--设置拦截日志级别-->
            <level>error</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    
	<!--自定义logger additivity表示是否从 rootLogger继承配置-->
    <logger name="com.atguigu" level="debug" additivity="false">
        <appender-ref ref="console"/>
    </logger>

3、log4j2的使用

Apache Log4j 2是对Log4j的升级版,参考了logback的一些优秀的设计,并且修复了一些问题,因此带 来了一些重大的提升,主要有:

  • 异常处理,在logback中,Appender中的异常不会被应用感知到,但是在log4j2中,提供了一些异
    常处理机制。
  • 性能提升, log4j2相较于log4j 和logback都具有很明显的性能提升,后面会有官方测试的数据。
  • 自动重载配置,参考了logback的设计,当然会提供自动刷新参数配置,最实用的就是我们在生产
    上可以动态的修改日志的级别而不需要重启应用。
  • 无垃圾机制,log4j2在大部分情况下,都可以使用其设计的一套无垃圾机制,避免频繁的日志收集
    导致的jvm gc。

官网: https://logging.apache.org/log4j/2.x/

4、SpringBoot中的日志使用

springboot框架在企业中的使用越来越普遍,springboot日志也是开发中常用的日志系统。springboot
默认就是使用SLF4J作为日志门面,logback作为日志实现来记录日志
。

3.1 SpringBoot中的日志设计

springboot中的日志

<dependency>
	<artifactId>spring-boot-starter-logging</artifactId>
	<groupId>org.springframework.boot</groupId>
</dependency>

依赖关系图
在这里插入图片描述
总结:

  1. springboot 底层默认使用logback作为日志实现。
  2. 使用了SLF4J作为日志门面
  3. 将JUL也转换成slf4j
  4. 也可以使用log4j2作为日志门面,但是最终也是通过slf4j调用logback

3.2 SpringBoot日志使用

1、 在springboot中测试打印日志

@SpringBootTest
    class SpringbootLogApplicationTests {
        //记录器
        public static final Logger LOGGER =
                LoggerFactory.getLogger(SpringbootLogApplicationTests.class);

        @Test
        public void contextLoads() {
            // 打印日志信息
            LOGGER.error("error");
            LOGGER.warn("warn");
            LOGGER.info("info"); // 默认日志级别
            LOGGER.debug("debug");
            LOGGER.trace("trace");
        }
    }

2、修改默认日志配置

logging.level.com.itheima=trace
# 在控制台输出的日志的格式 同logback
logging.pattern.console=%d{yyyy-MM-dd} [%thread] [%-5level] %logger{50} -%msg%n
# 指定文件中日志输出的格式
logging.file=D:/logs/springboot.log
logging.pattern.file=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n

3、指定配置
给类路径下放上每个日志框架自己的配置文件;SpringBoot就不使用默认配置的了
在这里插入图片描述
4、使用SpringBoot解析日志配置
logback-spring.xml:由SpringBoot解析日志配置

<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
	<springProfile name="dev">
		<pattern>${pattern}</pattern>
	</springProfile>
	
	<springProfile name="pro">
		<pattern>%d{yyyyMMdd:HH:mm:ss.SSS} [%thread] %-5level%msg%n</pattern>
	</springProfile>
</encoder>

application.properties

spring.profiles.active=dev

5、将日志切换为log4j2

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
	<exclusions>
		<!--排除logback-->
		<exclusion>
			<artifactId>spring-boot-starter-logging</artifactId>
			<groupId>org.springframework.boot</groupId>
		</exclusion>
	</exclusions>
</dependency>

<!-- 添加log4j2 -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
SLF4J使用教程以及常见问题解决(最新稳定版) 1.简介 官网:https://www.slf4j.org/manual.html (1)简单日记门面(simple logging Facade for Java)SLF4J是为各种loging APIs提供一个简单统一的接口。 (2)slf4j并不是一种具体的日志系统,而是一个用户日志系统的facade。 (3)在部署时,选择不同的日志系统包,即可自动转换到不同的日志系统上。 如:选择JDK自带的日志系统,则只需要将slf4j-api-XXX.jar和slf4j-jdkXXX.jar放置到classpa 阅读详情

相关推荐

几种志框架:Log4j Log4j2 SLF4J logback和Apache Commons Logging的比较

作为Java开发人员,对于日志记录框架一定非常熟悉。而且几乎在所有应用里面,一定会用到各种各样的日志框架用来记录程序的运行信息。而对于一个成熟的Java应用,这个是必不可少的。在开发和调试阶段,日志可以帮助我们更快的定位问题;而在应用的运维过程中,日志系统又可以帮助我们记录大部分的异常信息,通常很多企业会通过收集日志信息来对系统的运行状态进行实时监控预警。 总体概览 image.png 目前的日志框架有JDK自带的logging,log4j1、log4j2、logback ,这些框架都自己定制了.

qq_33449307的博客 1438

微服务学习系列15:日志框架slf4j使用和原理

slf4j主要是为了给Java日志访问提供一个标准、规范的API框架,其主要意义在于提供接口,具体的实现可以交由其他日志框架,例如log4j和logback等。对于一般的Java项目而言,日志框架会选择slf4j-api作为门面,配上具体的实现框架(log4j、logback等),中间使用桥接器完成桥接。例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

yangyanping20108的博客 6855

日志管理艺术:Slf4j与Logback实用指南(基于Gradle千字长文)

在当今软件开发领域,日志记录是一项至关重要的任务,它不仅帮助开发人员跟踪应用程序的运行状态和行为,还有助于故障排查、性能优化和安全监控。在日志记录领域,slf4j(Simple Logging Facade for Java)和logback是两个备受推崇的工具,它们为 Java 应用程序提供了强大而灵活的日志记录功能。slf4j作为一个简单的日志门面,提供了统一的日志记录接口,使开发人员能够轻松切换不同的日志实现框架,而无需修改应用程序的代码。而logback则是slf4j的一个实现,它提供了高性能、灵活

Xayla的博客 3332

Slf4j原理解析

slf4j原理解析

王文萱的博客 1万+

人工智能发展史(从起步到磅礴)以及浪潮阶段

随机森林是将多个有差异的弱学习器(决策树)Bagging并行组合,通过建立多个的拟合较好且有差异模型去组合决策,以优化泛化性能的一种集成学习方法。从论文里可以了解到,GPT-1具有1.17个参数,采用了12层的Transformer 解码器结构,使用5GB的无标注文本数据,在8个GPU上训练了一个月,然后再进行人工监督的微调。训练相结合的理念(该方法在当时计算力上还是有很多挑战,基本上都是和链式求导的梯度算法相关的),这也解决了单层感知器不能做非线性分类的问题,开启了神经网络新一轮的高潮。

xiao77224li的博客 7504

三款云电脑实测:ToDesk、青椒云、顺网云谁更适合AIGC新手?附详细配置对比

本文针对AIGC新手,深度实测了ToDesk云电脑、青椒云和顺网云三款云电脑服务。通过对比上手门槛、内置生态、操作引导及成本,发现ToDesk云电脑凭借一键启动、丰富预置模型和直观引导,为新手提供了最接近“开箱即用”的零门槛AIGC创作体验,是快速入门AI绘画的高效选择。

assembly8low的博客 1094

java常用日志框架日志门面及实现 SLF4J 、Jboss-logging 、JCL、Log4j、Logback、Log4j2、JUL,springboot集成 log4j、log4j2

一、java常用日志框架 1.日志门面(日志接口) ​ 日志门面来解决系统与日志实现框架的耦合性。不是一个真正的日志实现,而是一个抽象层( abstraction layer),它允许你在后台使用任意一个日志实现。 ​ 在项目开发中,记录日志时不应该直接调用日志实现层的方法,而应该调用日志门面(日志抽象层)的方法。 SLF4J(Simple Logging Facade for Java) ​ 简单日志门面(Simple Logging Facade For Java)

多云666 1951

F5 shape最新版逆向分析(美西南、xbk)

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,如有侵权,请联系作者立即删除。今天来简单秀下传说中的f5 shape,这是一个数一数二的盾,jsvmp+顶级风控,就算技术实力再强,也是需要花很多时间去摸索的,如果您遇到了这个盾又没有太多的时间去搞,欢迎来找我们。

mature的博客 3652

java:slf4j、log4j、log4j2、logback日志框架的区别与示例

java:slf4j、log4j、log4j2、logback日志框架的区别与示例

分享前端开发工程师的一些日常生活、前端知识点、职业发展、对一些问题的看法、感悟等等 3226

基于Simulink的双PMSM差速驱动转矩同步控制建模示例

本文详细介绍了基于Simulink的双永磁同步电机(PMSM)差速驱动转矩同步控制建模方法。针对AGV/叉车等双电机独立驱动系统的转矩不同步问题,提出主从式+交叉耦合控制策略,在Simulink中实现直线行驶、90°转弯和单轮打滑恢复三种工况的仿真验证。通过动力学建模、参数差异设置、同步误差定义及控制律设计,最终实现同步误差<3%、转弯半径跟踪误差<5%、打滑后100ms内恢复的性能指标。文章特别强调了实际工程中的参数标定、通信同步和故障处理要点,并提供了完整的Simulink建模步骤和工具箱使

xiaoheshang_123的博客 204

ABAP面试题系列:写一组会出现死锁(Deadlock)的ABAP程序

我们在计算机操作系统这门专业课上,学过死锁(Deadlock)的概念:两个或两个以上的进程(或线程)在执行过程中,由于竞争资源而造成的一种阻塞的现象,称为死锁。若无外力干预,这些处于死锁状态的进程将永远处于互相等待的阻塞状态中。 正好我儿子走到我电脑前看到文章标题,好奇地问我什么是死锁。我解释道,“假设你和白妹妹(他的玩伴)手上都有一张奥特曼白金卡,你特别想要白妹妹手上那张白金卡,白妹妹也特别想...

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

【Log】(三)Java 中的日志框架 logback、log4j2

1. logback 学习 1.1 logback 介绍 logback 是由 log4j 创始人设计的另一个开源日志组件,性能比 log4j 好 logback 主要分为 3 个模块: logback-core:其它两个模块的基础模块 logback-classic:它是 log4j 的一个改良版本,同时它完整实现了 slf4j API logback-access:访问模块与 Servlet

sco5282的博客 1914

如何使用VNC对openEuler系统进行远程图形化操作

本文详细介绍了在openEuler系统中配置VNC远程图形化操作的方法。主要内容包括:1)服务端配置:安装GNOME图形界面和TigerVNC服务,创建VNC用户并设置密码,配置VNC服务启动脚本;2)客户端连接:使用VNC Viewer等工具连接服务器;3)常见问题解决方法。通过5901端口建立连接后,用户可远程操作openEuler图形界面,适用于需要图形化管理的场景。

2501_93651177的博客 314

Springboot 开发 -- 日志框架总结及实践

Java 日志框架主要分为两类:日志门面和具体的日志实现。

dazhong2012的专栏 1553

对偶分解算法详解及其Python实现

对偶分解算法是一种广泛应用于求解凸优化问题的有效方法,尤其在大规模数据处理和分布式计算中展现出强大的实用性。在许多实际应用中,直接求解原始问题可能由于计算复杂度过高、资源受限或问题规模过大而变得不可行。这时,对偶分解方法为我们提供了一种高效的替代方案。对偶分解算法的核心思想是将复杂的原问题转化为其对应的拉格朗日对偶问题。通过引入拉格朗日乘子并构造对偶函数,该方法在一定程度上简化了问题的求解过程。特别是,对于包含多个约束条件的大规模优化问题,对偶分解可以将原问题分解为若干个小规模、相互独立的子问题。

闲人编程的博客 1752

RK3588S之CPU--benchmark(一)

本章会基于RK3588S来介绍有关CPU常用的benchmark工具及测试过程

文艺小少年的博客 1498

log4j2-spring.xml 日志达到一定大小 自动归档_Spring Boot 日志各种使用姿势,是时候捋清楚了...

之前录过一个视频和大家分享 Spring Boot 日志问题,但是总感觉差点意思,因此松哥打算再通过一篇文章来和大家捋一捋 Java 中的日志问题,顺便我们把 Spring Boot 中的日志问题也说清楚。1. Java 日志概览说到 Java 日志,很多初学者可能都比较懵,因为这里涉及到太多东西了:Apache Commons Logging、Slf4j、Log4j、Log4j2、Logback...

weixin_39991926的博客 1100

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Java项目如何统一日志框架?

Java Springboot项目中统一日志框架的方法

qq_14896551的博客 658

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Camera2Demo

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

一文详解Spring Boot如何配置日志

日志记录在软件开发中至关重要,能够帮助快速定位和解决问题。Java中常用的日志框架包括Log4j、Log4j2和Logback,其中Logback和Log4j2性能较优。通过SLF4J框架,可以轻松切换日志实现,SLF4J作为门面接口,调用时委托给具体的日志框架(如Logback或Log4j2)。在Java Web项目中,通常使用Slf4j + Logback组合,通过配置logback.xml文件定义日志输出格式和级别。Spring Boot默认集成了Logback和Slf4j,开发者只需通过Slf4j接

程序员伊成 2868

Java日志

如果需要更高级的日志配置,Spring Boot 支持自定义 Logback、Log4j2 或 Java Util Logging 的配置文件。只需要在类路径下提供相应的配置文件,Spring Boot 就会自动加载它。对于 Logback,我们可以提供或文件。对于 Log4j2,我们可以提供或log4j2.xml文件。对于 Java Util Logging,我们可以提供文件。这些自定义配置文件允许我们进行更详细的配置,例如设置日志滚动策略、定义复杂的日志过滤规则等。

曾续缘的博客 833

第21章 SpringBoot日志

SpringBoot学习笔记

richieandndsc的博客 770

六.SpringBoot之集成Logback日志

一、简介 Java知名的日志有很多,比如:JUL、Log4j、JCL、SLF4J、Logback、Log4j2,那么这些日志框架之间有着怎样的关系?诞生的原因又是解决什么问题?下面一起来看。 1.1 JUL Java有自己的日志框架JUL(Java Util Logging)在java.util.logging下,因为对开发者不友好,使用成本太高和日志级别分类不清晰的问题,所有很少有开发者用...

zhang__rong的博客 258

springboot日志使用笔记(logback,log4j2.log4j,jul)(slf4j,jcl)

springboot自动集成了logback,jul,log4j,并用 logback-classic桥接器、 jul-to-slf4j适配器、 log4j-to-slf4j适配器 集成与门面slf4j-api。

qq_40555976的博客 1285

Spring Boot学习之Logback和Log4j2集成与日志发展史

一、简介 Java知名的日志有很多,比如:JUL、Log4j、JCL、SLF4J、Logback、Log4j2,那么这些日志框架之间有着怎样的关系?诞生的原因又是解决什么问题?下面一起来看。 1.1 JUL Java有自己的日志框架JUL(Java Util Logging)在java.util.logging下,因为对开发者不友好,使用成本太高和日志级别分类不清晰的问题,所有很少有开发者用...

刘成 293

SpringBoot学习(二)--SpringBoot日志

二、SpringBoot日志 一.日志框架(实现类,实现) 日志框架很多,只写了三个常用的 1、Log4j Log4j是Apache的一个Java的日志库,通过使用Log4j,我们可以控制日志信息输送的目的地(控制台、文件、数据库等);我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。 2、Logback Logback,一个“可靠、通用、快速而又灵活的Java日志框架”。logback当前分成三个模块:logback-core,logback- cla

好好学习天天向上 519
上一篇: Java日志 - log4j
下一篇: Spring - IOC源码分析(二)
程序员老石
博客等级 码龄8年 286粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值