网站首页 > java教程 正文
日志配置
基本概念
Springboot支持java Util Logging、Log4J、Log4J2和Logback作为日志框架,无论使用哪种日志框架,Spring boot已为当前使用日志框架的控制台输出及文件输出做好了配置。默认情况下,Springboot使用Logback作为日志框架。
springboot1.x配置日志
配置日志级别,格式为logging.level.包名=级别
logging.level.org.springframework.web=DEBUG
配置日志文件:
logging.file=D:/mylog/log.log
springboot2.x配置日志
https://juejin.cn/post/7178259375784460325
1、创建web项目
2、添加依赖包
3、logback的日志等级
日志级别从低到高分为:
TRACE < DEBUG < INFO < WARN < ERROR < FATAL
4、SpringBoot默认的base.xml配置文件
SpringBoot的日志是根据level来控制的,根据不同的level来显示不同的日志内容。那么在哪里控制日志level呢?一般我们要在resources目录下配置spring-logback.xml文件来控制,如果我们什么配置都没写,那么Springboot会采用默认的配置。
这里就是Springboot对logback配置的地方,base.xml里,可以看到root level=INFO,这个代表该项目默认是输出最低为info级别的日志。然后看到有两个append-ref,分别为console何file,这两个分别对应上面引用的两个include resource里的xml,每个名字对应一个处理类。
ConsoleAppender和FixedWindowRollingPolicy都是logback提供的两个Appender处理类,Appender类代表了对日志的处理方法,这个可以自定义。系统提供了很多个Appender,基本满足了大部分场景的需求,像Console就是输出到控制台的,System.out.print之类的,而File的就是输出到日志文件的。
5、自定义的logback-spring.xml文件详解
配置文件的精简结构
这个文件在springboot中默认叫做logback-spring.xml,我们只要新建一个同名文件放在resources下面,配置即可生效。
contextName
每个logger都关联到logger上下文,默认上下文名称为“default”。但可以使用contextName标签设置成其他名字,用于区分不同应用程序的记录。
property
用来定义变量值的标签,property标签有两个属性,name和value;其中name的值是变量的名称,value的值时变量定义的值。通过property定义的值会被插入到logger上下文中。定义变量后,可以使“${name}”来使用变量。
logger
用来设置某一个包或者具体的某一个类的日志打印级别以及指定appender。
root
根logger,也是一种logger,且只有一个level属性。
appender
负责日志的组件。
常用的appender的种类
ConsoleAppender
把日志添加到控制台
FileAppender
把日志添加到文件
RollingFileAppender
滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件,它是FileAppender的子类。
filter
filter其实是appender里的子元素,它作为过滤器存在,执行一个过滤器会有返回DENY,NEUTRAL,ACCEPT三个枚举值中的一个。
DENY:日志将立即被抛弃不再经过其他过滤器;
NEUTRAL:有序列表里的下个过滤器过接着处理日志;
ACCEPT:日志会被立即处理,不再经过剩余过滤器。
常用的过滤器
ThresholdFilter:临界值过滤器,过滤掉低于指定临界值的日志。当日志级别等于或高于临界值时,过滤器返回NEUTRAL;当日志级别低于临界值时,日志会被拒绝。
LevelFilter:级别过滤器,根据日志级别进行过滤。如果日志级别等于配置级别,过滤器会根据onMath(用于配置符合过滤条件的操作) 和 onMismatch(用于配置不符合过滤条件的操作)接收或拒绝日志。
6、logback-spring.xml示例文件
- 上一篇: 我发现很多程序员都不会打日志……
- 下一篇: Spring Boot3 中日志配置方式总结
猜你喜欢
- 2025-07-10 SpringBoot扩展——定时任务!(springboot定时任务实现的几种方式)
- 2025-07-10 面试官:可重复读隔离级别实现原理是什么?(一文搞懂MVCC机制)
- 2025-07-10 开发必看!Spring Boot3 如何无缝整合 SkyWalking 实现高效性能监测
- 2025-07-10 Spring Boot3 中可整合的最新内容汇总
- 2025-07-10 java日志大全-第4篇:Logback(java 日志系统)
- 2025-07-10 每天一个 Python 库:logging 用法精讲,高效简洁的输出日志
- 2025-07-10 C#.NET log4net 详解(c#.net教程)
- 2025-07-10 java内存分析利器,mat与arthas哪个更强?
- 2025-07-10 Spring Boot3 学习提升相关知识点汇总
- 2025-07-10 Java日志埋点实战:3个技巧让Bug无所遁形
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)