【Logback】自定义日志输出格式
知识链接
🖊 resource目录新建文件logback.xml
,复制以下内容,并作适当修改即可完成
- logback可以被自动识别的规范名称:
logback-spring.xml
,logback-spring.groovy
,logback.xml
, orlogback.groovy
- 建议您在日志配置中使用-spring变体(例如,logback-spring.xml而不是logback.xml)。如果您使用标准配置位置,spring无法完全控制日志初始化。
<?xml version="1.0" encoding="UTF-8"?>
<!--scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true-->
<!--scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟-->
<configuration scan="true" scanPeriod="30 seconds">
<!--property:自定义的上下文属性配置,可以使用${name}的方式引用value值-->
<property name="LOG_DIR" value="logs"/>
<property name="APP_NAME" value="server-name"/>
<property name="APP_PATH" value="/home"/>
<!--自定义日志输出格式-->
<!--<property name="CONSOLE_LOG_PATTERN"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level ${PID:- } [%15thread] %-40.40(%logger{40}.%method) : %msg%n"/>-->
<!--<property name="FILE_LOG_PATTERN"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level ${PID:- } [%15thread] %-40.40(%logger{40}.%method) : %msg%n"/>-->
<!--<property name="CONSOLE_COLOR_LOG_PATTERN"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %magenta(${PID:- }) [%15thread] %boldCyan(%-40.40(%logger{40}.%method)) : %msg%n"/>-->
<!--引入spring boot默认的logback配置文件,这里使用和spring一致的输出格式-->
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<!--标准输出:控制台日志-->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!--文件输出:追加日志到文件中-->
<appender name="FILE-LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--实时日志文件的存放路径和名称-->
<file>${APP_PATH}/out.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${FILE_LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
<!--设置滚动策略-->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--滚动切割产生的历史日志文件的存放路径和名称-->
<!--%d{yyyy-MM-dd}:按天进行日志滚动-->
<!--%i:当文件大小超过maxFileSize时,按照i进行文件滚动-->
<FileNamePattern>${APP_PATH}/${LOG_DIR}/${APP_NAME}.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<!--历史日志保存最大天数-->
<MaxHistory>30</MaxHistory>
<!--当日志文件超过指定的大小时,根据FileNamePattern标签里提到的%i进行日志文件滚动-->
<maxFileSize>100MB</maxFileSize>
</rollingPolicy>
</appender>
<!--细化日志中依赖包路径输出级别-->
<logger name="org.springframework" level="info"/>
<!--将appender都加入到root根标签-->
<!--root级别 DEBUG 如果设置为WARN,则低于WARN的信息都不会输出-->
<!--日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,配置WARN只会记录自身和比高于自身级别的日志-->
<!--开发调试阶段打开控制台输出,日志级别设置为INFO,生产环境关闭控制台输出,只需要ERROR级别并记录到文件中-->
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE-LOG"/>
</root>
</configuration>
分类:
SpringBoot
, tech
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)