Spring Boot 日志处理你还在用Logback?

springboot日志依赖slf4j分析和logback-spring.xml的配置举例子分析 文章目录一、写在前面二、什么是slf4j2.1 什么是slf4j2.2 slf4j、logback和log4j的关系2.3 在springboot中使用slf4j+logback日志框架 一、写在前面 首先,推荐一篇优秀的介绍slf4j的优秀文章 https://juejin.im/post/5c7e2445f265da2de71370f2 springboot的默认日志依赖为slf4j。 本文的特点是会举很多通俗易懂的例子,让大家通过例子来学习使用slf4j。 二、什么是slf4j 2.1 什么是slf4 阅读详情

img

▶ Log4j2 性能

▶ Spring Boot 依赖与配置

Maven 依赖

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

        <!-- 日志 Log4j2 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>

        <!-- Log4j2 异步支持 -->
        <dependency>
            <groupId>com.lmax</groupId>
            <artifactId>disruptor</artifactId>
            <version>3.3.6</version>
        </dependency>

XML 配置 resources/log4j2.xml

  • 混合 sync/async
  • 彩色日志
  • 分类输出到不同文件
  • 自动压缩日志文件并归档
<?xml version="1.0" encoding="UTF-8"?>
<!-- Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,
     你会看到log4j2内部各种详细输出。可以设置成OFF(关闭) 或 Error(只输出错误信息)。
     30s 刷新此配置
-->
<configuration status="WARN" monitorInterval="30">

    <!-- 日志文件目录、压缩文件目录、日志格式配置 -->
    <properties>
        <Property name="fileName">/Users/admin/Code/log</Property>
        <Property name="fileGz">/Users/admin/Code/log/7z</Property>
        <Property name="PID">????</Property>
        <Property name="LOG_PATTERN">%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n%xwEx</Property>
    </properties>

    <Appenders>
        <!-- 输出控制台日志的配置 -->
        <Console name="console" target="SYSTEM_OUT">
            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
            <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>
            <!-- 输出日志的格式 -->
            <PatternLayout pattern="${LOG_PATTERN}"/>
        </Console>

        <!-- 打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档 -->
        <RollingRandomAccessFile name="infoFile" fileName="${fileName}/web-info.log" immediateFlush="false"
                                    filePattern="${fileGz}/$${date:yyyy-MM}/%d{yyyy-MM-dd}-%i.web-info.gz">
            <PatternLayout pattern="${LOG_PATTERN}"/>

            <Policies>
                <SizeBasedTriggeringPolicy size="20 MB"/>
            </Policies>

            <Filters>
                <!-- 只记录info和warn级别信息 -->
                <ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
                <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>

            <!-- 指定每天的最大压缩包个数,默认7个,超过了会覆盖之前的 -->
            <DefaultRolloverStrategy max="50"/>
        </RollingRandomAccessFile>

        <!-- 存储所有error信息 -->
        <RollingRandomAccessFile name="errorFile" fileName="${fileName}/web-error.log" immediateFlush="false"
                                    filePattern="${fileGz}/$${date:yyyy-MM}/%d{yyyy-MM-dd}-%i.web-error.gz">
            <PatternLayout pattern="${LOG_PATTERN}"/>

            <Policies>
                <SizeBasedTriggeringPolicy size="50 MB"/>
            </Policies>

            <Filters>
                <!-- 只记录error级别信息 -->
                <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>

            <!-- 指定每天的最大压缩包个数,默认7个,超过了会覆盖之前的 -->
            <DefaultRolloverStrategy max="50"/>
        </RollingRandomAccessFile>
    </Appenders>

    <!-- Mixed sync/async -->
    <Loggers>
        <Root level="debug" includeLocation="true">
            <AppenderRef ref="console"/>
            <AppenderRef ref="infoFile"/>
            <AppenderRef ref="errorFile"/>
        </Root>

        <AsyncRoot level="debug" includeLocation="true">
            <AppenderRef ref="console"/>
            <AppenderRef ref="infoFile"/>
            <AppenderRef ref="errorFile"/>
        </AsyncRoot>
    </Loggers>

</configuration>

最终效果如下:

img

© 著作权归作者所有,转载或内容合作请联系作者

问题来了,请问诸位你们项目中目前在使用Logback还是Log4j2呢?

img

● 【双11狂欢的背后】微服务注册中心如何承载大型系统的千万级访问?

● Spring Boot 新一代监控你该这么玩

● Spring Boot 异常处理

● Spring Boot 配置 - 配置信息加密

● 拒绝黑盒应用-Spring Boot 应用可视化监控

● 并发Bug之源有三,请睁大眼睛看清它们

本文由博客一文多发平台 OpenWrite 发布!

别再只调电压了!深入理解数控电源的CC/CV模式与双闭环PID控制(以BUCK电路为例) 本文深入解析数控电源的CC/CV模式与双闭环PID控制技术,以BUCK电路为例,探讨如何通过双闭环控制优化负载突变响应和模式切换稳定性。文章详细介绍了电压环与电流环的协同工作原理、PID参数整定技巧及工程实践中的非线性补偿方法,帮助工程师提升电源设计的智能控制能力。 阅读详情

相关推荐

高速窄脉冲峰值保持设计

一、目的 在激光探测领域,探测器发出的高速窄脉冲,单片机AD进行采样,很难捕捉到窄脉冲的幅值,即使使用高速AD进行采样,也存在一定的难度。因此,本方案设计了一种高速窄脉冲峰值保持电路,有助于单片机AD采样能很好的捕捉到脉冲幅值。 二、方案分析与比较 峰值保持器一般分为两种:电压型和跨导型。 方案一:电压型峰值保持器,由电压型运放、二极管、保持电容、缓冲器组成,优点是元件成本低,缺点是峰值保持存在过...

weixin_43184208的博客 9297

SpringBoot日志

自定义打印日志的步骤:1.在程序中得到日志对象;2.使用日志对象的相关语法输出要打印的对象上面在获取日志对象时,需要使用日志工厂LoggerFactory,日志工厂需要将每一个类的类型传递进去,这样才知道日志的归属类,才能更方便、更直观定位到文体类。这里的Logger对象是在org.slf4j包小面的。

yahid的博客 9694

大数据工程中的多模态数据处理技术

模态”(Modality)指的是数据的表现形式文本(Text):新闻、评论、文案等;图像(Image):照片、截图、医学影像等;音频(Audio):语音、音乐、环境声音等;视频(Video):短视频、监控视频、电影等(本质是图像+音频的组合);数值/结构化数据(Numerical/Structured):用户年龄、商品价格、传感器数据等;时间序列(Time Series):股票价格、物流轨迹、心率数据等。多模态数据(Multimodal Data)是指包含两种或以上模态的数据集。

AI云原生与云计算技术学院 1277

Spring Boot日志

1.获得日志对象注意:日志对象Logger 属于org.slf4j包下的,不要导错包2.使用日志对象打印日志@Service//1.获得日志对象//2.自定义打印日志log.trace("trace 日志");log.debug("debug 日志");log.info("info 日志");log.warn("warn 日志");log.error("error 日志");}}

weixin_60778429的博客 2885

STM32 USB AUDIO实战指南——从零构建音频设备

本文详细介绍了如何使用STM32F407构建USB音频设备,从硬件准备到软件配置,再到音频播放和录制功能的实现。通过STM32CubeMX配置和实战代码示例,帮助开发者快速掌握USB Audio Class规范,实现低延迟、高质量的音频传输,适用于语音交互、音乐播放等多种场景。

weixin_42549037的博客 485

Cursor生成JAVA相关的关键词提示规则

你是 Java 编程、Spring Boot、Spring Framework、Maven、JUnit 及相关 Java 技术的专家。在项目根目录创建一个.curstorrules文件(注意有个小数点),之后在该文件内填入下面内容。始终遵循 SOLID 原则,保持高内聚低耦合的 Spring Boot 应用设计。Java 和 Spring Boot 使用规范。Spring Boot 具体规范。

kitonGao的博客 2118

Spring Boot日志详解

最全面的Spring Boot日志说明

qq_27890899的博客 2839

复现论文《大规模风电场电磁暂态高效建模仿真方法》

本文提出了一种针对大规模风电场电磁暂态(EMT)仿真的高效建模方法。通过三种关键技术实现仿真加速:(1)永磁直驱风电机组一体化等效建模,采用节点导纳矩阵降维将25节点机组简化为4端子电路,仿真速度提升1-3个数量级;(2)基于戴维南/诺顿等效和OpenMP并行计算的风电场整体建模,通过串并联叠加实现节点收缩,30台机组仿真加速近万倍;(3)受控源映射解耦方法提高故障仿真灵活性。复现代码展示了核心算法实现,包括导纳矩阵Schur补降维、多进程并行计算框架以及受控源解耦方法。

huanghm88的专栏 279

在Spring Cloud架构下使用Spring Boot的Logback日志处理方案

或者使用Lombok @Slf4j 注解 参考:https://blog.youkuaiyun.com/qq_20299791/article/details/89852458。定义了日志输出的方式,包括控制台输出和文件输出。其中,文件输出使用了滚动策略,即以时间为基准,每天生成一个。定义了日志输出的格式,包括时间、线程、日志级别、类名、日志信息等。其中,LOG_HOME为日志文件输出路径,可以根据需要进行修改。

weixin_43465090的博客 2737

zemax像差参数Ray Fan/Spot Diagram/MTF/....讲解三

zemax像差参数Ray Fan/Spot Diagram/MTF/....讲解三

weixin_72050316的博客 1387

关键!C#工业上位机界面设计终极指南:WinForm/WPF怎么选?【工业实战完整版,无废话选型+避坑+落地技巧】

工业上位机UI选型指南:WinForm与WPF核心对比 摘要: 本文基于工业实战视角,对比WinForm与WPF在工业上位机开发中的适用性。WinForm凭借GDI+原生渲染、极致兼容性(完美支持Win7/XP)、低资源占用和硬件底层调用优势,成为老旧工控机、简单监控系统和7×24小时运行设备的首选。WPF则依托DirectX硬件加速、MVVM架构和强大可视化能力,更适合复杂可视化大屏、3D模拟等高端场景及需要长期迭代的大型项目。核心选型原则是:优先考虑稳定性与兼容性,WinForm解决"能不能用

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 729

Spring Boot统一日志处理Logback

一、什么是日志 1、日志的作用 通过日志查看程序的运行过程,运行信息,异常信息等,可以为解决程序的bug提供帮助。 如在Tomcat服务器上的窗口信息,信息刷新太快了,不好锁定错误信息,这时就需要查找tomcat的日志。 2、Logger的日志级别 日志记录器(Logger)的行为是分等级的。如下表所示: 分为:FATAL、ERROR、WARN、INFO、DEBUG 3、日志级别的配置 默认情况下,spring boot项目从控制台打印出来的日志级别只有INFO及以上级别 可以在a

心有谦谦结 1388

Python之afdx包语法、参数和实际应用案例

Python 的 afdx 包是针对 AFDX 协议的轻量级开发工具,专注于 AFDX 数据帧的解析、构造、发送/接收、协议合规性校验等核心能力,广泛应用于航空电子设备测试、仿真、数据监控等场景。

王国平的博客 984

Spring-boot logback日志处理

1:在resources目录下面创建logback.xml配置文件 <?xml version="1.0"?> <configuration> <!-- 控制台输出 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> ...

weixin_30593261的博客 65

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

精雕软件(JDpaint) 5.5 绿色版

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

logback 归档压缩_Spring Boot 日志处理你还在用Logback?

点击上方☝SpringForAll社区,轻松关注!及时获取有趣有料的技术文章▶ Log4j2 性能https://logging.apache.org/log4j/2.x/performance.html▶ Spring Boot 依赖与配置Maven 依赖 1 2<dependency> 3<groupId>org.spr...

weixin_40005437的博客 257

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

spring boot使用 Logback+@Slf4j统一日志处理

Logback是log4j的演变 springboot默认将日志的输出指定为了logback,可以更好的帮助我们管理日志信息。 1.使用之前先将application中的日志配置先删掉或者注释掉 2.在resource目录下导入logback-spring.xml (内容比较固定,复制粘贴即可) <?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="10 seconds">

一起码代码 2255

spring boot项目日志处理

1、我使用的是spring boot自带的日志处理包,没有在pom里面引进其他的jar包,我的pom文件如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apa

Sun_of_Rainy的博客 595

【log】操作类日志处理 与 报错类日志处理logback

第二步:在Controller写一个测试的方法: 第三步:编写LogAspect增强类与增强方法 日志写入数据库(使用mybatis) 使用mybatis的话,要导入mybatis的核心包,和sql驱动,配置文件 第一步:创建关于日志的数据库(用户、操作、方法、执行时间、个人服务器IP、操作时间等) 第二步:创建实体类 第三步: dao层(省略mapper和service层) 第四步: LogAspect增强类与增强方法 两个工具类 IPUtil

m0_70083523的博客 1011

Spring boot-Logback

  1、logback简单介绍 开源,是Log4j的改良版本 Springboot提供了一套日志系统,lockback是最优选择 2、结构 logback被分为三个组件:core、classic、access 其中,core提供了Logback的核心功能,另外两个组件在其基础之上; classic实现了Slf4j的Api,当需要配合Slf4j使用时,需要将class...

sinat_32856935的博客 317

springboot 控制台输出错误信息_Spring Boot 日志处理你还在用Logback?

点击上方☝SpringForAll社区,轻松关注!及时获取有趣有料的技术文章▶ Log4j2 性能https://logging.apache.org/log4j/2.x/performance.html▶ Spring Boot 依赖与配置Maven 依赖 1XML 配置 resources/log4j2.xml混合 sync/async彩色日志分类输出到不同文件自动压缩日志文件并归档...

weixin_39665847的博客 110

Spring Boot日志处理

创建logback-spring.xml文件放入resource下,并复制内容到该文件。创建自定义注解类(用于在Controller层使用注解标注哪个方法需要增加日志)编写LogAspect增强类与增强方法(我们使用环绕增强around)注解保留在程序运行期间,此时可以通过反射获得定义在某个类上的所有注解。用来说明该注解可以被声明在那些元素之前。修改LogAspect增强类与增强方法。说明该注解只能被声明在一个类的方法前。创建controller进行测试。用来说明该注解类的生命周期。

weixin_62008675的博客 1265

logback-spring.xml 不生效

logback-spring.xml 不生效 在生产环境部署项目时,如果不配置日志切分就会导致单个超大日志文件,一旦出现问题查找起来非常麻烦 具体配置根据是这位大佬学习的 logback-spring.xml配置文件(最佳实践)_许三多的博客-优快云博客_logback-spring.xml配置 发现有些项目配置后可以正常使用,有些直接无效,直接对比pom文件发现 <dependency> <groupId>org.springframework.boot<

weixin_45860766的博客 1361

8.spring boot日志处理

日志处理: 1、日志框架目前有:UCL,JUL,Jboss-logging,logback,log4j,log4j2,slf4j… spring boot默认选用slf4j,logback spring boot默认帮我们配置好了日志,我们直接使用即可。 其中日志主要级别: Trace<debug<Info<warn<error<fatal<off sprin...

mydaima的博客 247

多环境日志管理:使用Logback与Logstash集成实现高效日志处理

通过上述步骤,我们已经成功地为Spring Boot项目设置了多环境日志配置,并实现了与Logstash的集成。这种设置不仅提高了日志处理的效率,还使得日志更容易被分析和检索。希望这篇文章能帮助你在自己的项目中更好地管理日志!

程序猿熊躍暉的专栏 846
上一篇: 【双11狂欢的背后】微服务注册中心如何承载大型系统的千万级访问?
下一篇: SpringBoot中教你手把手配置 https
SpringForAll
博客等级 码龄7年 15粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值