SpringBoot日志配置
日志配置
- 支持很多日志框架,如果不配置默认使用 Logback
- 提供的默认配置
#path和name单独都可以,但是同时指定不可以,所以给出解决方法使用日志配置文件
logging:
level: #指定打印日记的级别
org.springframework.web: debug
file:
path: #指定生成日志文件的路径
name: #指定生成日志文件的名字
- 日志级别
log4j定义了8个级别的log(除去OFF和ALL 可以说分为6个级别),
优先级从高到低依次为:OFF FATAL ERROR WARN INFO DEBUG TRACE ALL
ALL: 最低等级的 用于打开所有日志记录
TRACE: 很低的日志级别 一般不会使用
DEBUG: 指出细粒度信息事件对调试应用程序是非常有帮助的 主要用于开发过程中打印一些运行信息
INFO: 消息在粗粒度级别上突出强调应用程序的运行过程打印一些你感兴趣的或者重要的信息 这个可以用于生产环境中输出程序运行的一些重要信息但是不能滥用 避免打印过多的日志
WARN: 表明会出现潜在错误的情形 有些信息不是错误信息 但是也要给程序员的一些提示
ERROR: 指出虽然发生错误事件 但仍然不影响系统的继续运行打印错误和异常信息 如果不想输出太多的日志 可以使用这个级别
FATAL: 指出每个严重的错误事件将会导致应用程序的退出这个级别比较高了 重大错误 这种级别你可以直接停止程序了
OFF: 最高等级的,用于关闭所有日志记录
如果将log level设置在某一个级别上 那么比此级别优先级高的log都能打印出来例如 如果设置优先级为WARN 那么OFF FATAL ERROR WARN 4个级别的log能正常输出而INFO DEBUG TRACE ALL级别的log则会被忽略
- 使用xml配置日志
创建logback.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!-- Logback configuration. See http://logback.qos.ch/manual/index.html -->
<configuration scan="true" scanPeriod="10 seconds">
<!--<include
resource="org/springframework/boot/logging/logback/base.xml"
/> -->
<!--定义日志文件的存储地址和前缀名 -->
<property name="LOG_HOME" value="logs"/>
<property name="LOG_PREFIX" value="client-a"/>
<!-- 一般信息按照每天生成日志文件 -->
<appender name="INFO_FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOG_HOME}/${LOG_PREFIX}-info.log</File>
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 每天一归档 -->
<fileNamePattern>${LOG_HOME}/${LOG_PREFIX}-info-%d{yyyyMMdd}.log.%i</fileNamePattern>
<!-- 单个日志文件最多500MB, 30天的日志周期,最大不能超过20GB -->
<maxFileSize>100MB</maxFileSize>
<maxHistory>30</maxHistory>
<totalSizeCap>20GB</totalSizeCap>
</rollingPolicy>
<encoder>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个
字符宽度%msg:日志消息,%n是换行符 -->
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level%logger{36}-%msg%n</Pattern>
</encoder>
</appender>
<!--错误信息按照每天生成日志文件 -->
<appender name="ERROR_FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<File>${LOG_HOME}/${LOG_PREFIX}-error.log</File>
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 每天一归档 -->
<fileNamePattern>${LOG_HOME}/${LOG_PREFIX}-error-%d{yyyyMMdd}.log.%i</fileNamePattern>
<!-- 单个日志文件最多500MB, 30天的日志周期,最大不能超过20GB -->
<maxFileSize>100MB</maxFileSize>
<maxHistory>30</maxHistory>
<totalSizeCap>20GB</totalSizeCap>
</rollingPolicy>
<encoder>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个
字符宽度%msg:日志消息,%n是换行符 -->
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level%logger{36}-%msg%n</Pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个
字符宽度%msg:日志消息,%n是换行符 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level%logger{50} -%msg%n</pattern>
</encoder>
</appender>
<!-- 日志输出级别 这样设置不打印日志 -->
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="INFO_FILE"/>
<appender-ref ref="ERROR_FILE"/>
</root>
</configuration>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?