Springboot整合logback日志系统

Toretto·2021-08-13 17:46·103 次阅读

Springboot整合logback日志系统

1.创建logback-spring.xml文件#

Copy
<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="60 seconds"> <!-- 文件最大保存历史数量 --> <property name="MAX_HISTORY" value="30"/> <!-- 文件最大尺寸 --> <property name="MAX_FILE_SIZE" value="10MB"/> <!-- 控制台日志输出样式 --> <property name="CONSOLE_LOG_PATTERN" value="%date{yyyy-MM-dd HH:mm:ss} | %highlight(%-5level) | %boldYellow(%thread) | %boldGreen(%logger) | %msg%n"/> <!-- 文件日志输出样式 --> <property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"/> <!-- 控制台设置 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${CONSOLE_LOG_PATTERN}</pattern> </encoder> </appender> <!-- INFO --> <appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 文件路径 ,注意LOG_PATH是默认值, 它的配置对应application.yml里的logging.file.path值--> <!--<file>${LOG_PATH}/firstDemo_info.log</file>--> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!-- 文件名称 --> <fileNamePattern>${LOG_PATH}/firstDemo_%d{yyyy-MM-dd}_info.%i.log</fileNamePattern> <maxFileSize>${MAX_FILE_SIZE}</maxFileSize> <maxHistory>${MAX_HISTORY}</maxHistory> </rollingPolicy> <!--日志文件输出格式--> <encoder> <pattern>${FILE_LOG_PATTERN}</pattern> <charset>UTF-8</charset> <!-- 此处设置字符集 --> </encoder> <!-- 此日志文件只记录info级别的 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>info</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- DEBUG --> <appender name="debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--<file>${LOG_PATH}/firstDemo_debug.log</file>--> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!-- 文件名称 --> <fileNamePattern>${LOG_PATH}/firstDemo_%d{yyyy-MM-dd}_debug.%i.log</fileNamePattern> <maxFileSize>${MAX_FILE_SIZE}</maxFileSize> <maxHistory>${MAX_HISTORY}</maxHistory> </rollingPolicy> <!--日志文件输出格式--> <encoder> <pattern>${FILE_LOG_PATTERN}</pattern> <charset>UTF-8</charset> <!-- 此处设置字符集 --> </encoder> <!-- 此日志文件只记录warn级别的 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>debug</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- WARN --> <appender name="warnAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--<file>${LOG_PATH}/firstDemo_warn.log</file>--> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!-- 文件名称 --> <fileNamePattern>${LOG_PATH}/firstDemo_%d{yyyy-MM-dd}_warn.%i.log </fileNamePattern> <maxFileSize>${MAX_FILE_SIZE}</maxFileSize> <maxHistory>${MAX_HISTORY}</maxHistory> </rollingPolicy> <!--日志文件输出格式--> <encoder> <pattern>${FILE_LOG_PATTERN}</pattern> <charset>UTF-8</charset> <!-- 此处设置字符集 --> </encoder> <!-- 此日志文件只记录warn级别的 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>warn</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- ERROR --> <appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--<file>${LOG_PATH}/firstDemo_error.log</file>--> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!-- 文件名称 --> <fileNamePattern>${LOG_PATH}/firstDemo_%d{yyyy-MM-dd}_error.%i.log </fileNamePattern> <maxFileSize>${MAX_FILE_SIZE}</maxFileSize> <maxHistory>${MAX_HISTORY}</maxHistory> </rollingPolicy> <!--日志文件输出格式--> <encoder> <pattern>${FILE_LOG_PATTERN}</pattern> <charset>UTF-8</charset> <!-- 此处设置字符集 --> </encoder> <!-- 此日志文件只记录ERROR级别的 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <logger name="org.springframework" additivity="false"> <level value="ERROR" /> <appender-ref ref="STDOUT" /> <appender-ref ref="errorAppender" /> </logger> <!-- 由于启动的时候,以下两个包下打印debug级别日志很多 ,所以调到ERROR--> <logger name="org.apache.tomcat.util" additivity="false"> <level value="ERROR"/> <appender-ref ref="STDOUT"/> <appender-ref ref="errorAppender"/> </logger> <!-- 默认spring boot导入hibernate很多的依赖包,启动的时候,会有hibernate相关的内容,直接去除 --> <logger name="org.hibernate.validator" additivity="false"> <level value="ERROR"/> <appender-ref ref="STDOUT"/> <appender-ref ref="errorAppender"/> </logger> <root level="DEBUG"> <appender-ref ref="STDOUT"/> <appender-ref ref="infoAppender"/> <appender-ref ref="debugAppender"/> <appender-ref ref="warnAppender"/> <appender-ref ref="errorAppender"/> </root> </configuration>

2. application.yml#

Copy
logging: config: classpath:logback-spring.xml file: path: c:/logs

3.控制台样式展示#

4.日志样式展示#

  • application.yml与logback-spring.xml文件同级
posted @   Awsly  阅读(103)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· Qt个人项目总结 —— MySQL数据库查询与断言
点击右上角即可分享
微信分享提示
目录