日志框架
1、什么是日志框架
- 一套能实现日志输出的工具包;
- 能够描述系统运行状态的所有时间都可以算作日志。
用户登录退出、接口超时,数据库崩溃,Hello world。
2、日志框架的能力
- 定制输出目标
- 定制输出格式
- 携带上下文信息
- 运行时选择性输出
- 灵活配置
- 优异性能
3、常见的日志框架
JCL、JUL、Log4j、Log4j2、jboss-logging、Logback、SLF4j。
4、日志框架分类
spring boot中最常用的组合框架SLF4j、Logback
5、如何使用SLF4j
5.1、日志的级别
ERROR(40, "ERROR"),
WARN(30, "WARN"),
INFO(20, "INFO"),
DEBUG(10, "DEBUG"),
TRACE(0, "TRACE");
默认的级别为:INFO
5.2、Logback配置
- application.yml,只能满足简单的日志配置需求;
- logback-spring.xml,能够满足定制化的复杂日志配置需求;
配置需求:
- 区分info 和 error日志;
- 每天产生一个日志文件;
application.properties的配置
#logging.pattern.console=%d - %msg%n
#logging.path=F:/project/log/sell
#logging.file=F:/project/log/sell/sell.log
#logging.level.root=debug
logback-spring.xml配置

<?xml version="1.0" encoding="UTF-8" ?> <configuration scan="true" scanPeriod="60 seconds" debug="false"> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径,必须用绝对路径--> <property name="LOG_HOME" value="F:/project/log/sell/"></property> <!--控制台的输出--> <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level表示级别从左显示5个字符宽度,, %logger{50}表示类的全名 50表示最多显示字符长度,%msg:日志消息,%n是换行符--> <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n </pattern> </layout> </appender> <!--info 日志输出格式配置--> <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--配置筛选策略,只打印INFO日志--> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <!-- 如果命中就允许这条日志 --> <onMismatch>DENY</onMismatch> <!-- 如果没有命中就禁止这条 --> </filter> <encoder charset="UTF-8"> <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n </pattern> </encoder> <!--滚动策略--> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--路径--> <fileNamePattern>${LOG_HOME}/info.%d.log</fileNamePattern> <!--日志文件保留天数--> <MaxHistory>30</MaxHistory> </rollingPolicy> <!--日志文件最大的大小--> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> </appender> <!--error 日志输出格式配置--> <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--配置筛选策略--> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>ERROR</level> </filter> <encoder charset="UTF-8"> <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n </pattern> </encoder> <!--滚动策略--> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--路径--> <fileNamePattern>${LOG_HOME}/error.%d.log</fileNamePattern> <!--日志文件保留天数--> <MaxHistory>30</MaxHistory> </rollingPolicy> <!--日志文件最大的大小--> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> </appender> <root level="info"> <appender-ref ref="consoleLog"/> <appender-ref ref="fileInfoLog"/> <appender-ref ref="fileErrorLog"/> </root> </configuration>
分类:
SpringBoot
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?