设为首页 加入收藏

TOP

Spring Boot 整合 Logback 日志(一)
2023-07-25 21:40:39 】 浏览:59
Tags:Spring Boot 整合 Logback日志

Spring Boot 支持 Java Util Logging,Log4J,Log4J2 和 Logback 等日志框架,默认采用 Logback 日志。

在实际 Spring Boot 项目中使用 Spring Boot 默认日志配置是不能够满足实际生产及开发需求的,需要选定适合的日志输出框架,灵活调整日志输出级别、日志输出格式等。

此处主要讲述如何进行 Spring Boot 项目的 Logback 默认日志详细配置。

强烈建议使用默认的 Logback 日志配置,因为它比 log4j 性能好很多!

  1. Spring Boot 自动整合了 logback 和 log4j2,所以无需引入相关依赖。

  2. 在 resources 目录下,新建日志配置文件 logback-spring.xml

    首先,官方推荐使用的 xml 名字的格式为:logback-spring.xml 而不是 logback.xml,至于为什么,因为带 spring 后缀的可以使用 <springProfile> 这个标签(PS:这个标签用于切换“开发环境”和“生产环境”)。

    下面配置可看情况自行修改!

    本文配置参考:传送门

    <?xml version="1.0" encoding="UTF-8" ?>
    <!--
        scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true
        scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位默认单位是毫秒,当scan为true时此属性生效,默认时间间隔为1分钟
        debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态,默认值为false
     -->
    <configuration scan="true" scanPeriod="2 seconds">
        <!--
         	定义滚动记录文件appender 作用:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件
            RollingFileAppender class="ch.qos.logback.core.rolling.RollingFileAppender"
           	 参数:
                <append>:如果是true日志被追加到文件结尾,如果是false清空现存文件,默认是true
                <file>:被写入的文件名,可以是相对目录也可以是绝对目录,如果上级目录不存在会自动创建,没有默认值
                <rollingPolicy>:当发生滚动时,决定RollingFileAppender的行为,涉及文件移动和重命名
                <triggeringPolicy>:告知RollingFileAppender合适激活滚动
                <prudent>:当为true时不支持FixedWindowRollingPolicy支持TimeBasedRollingPolicy,但是有两个限制:1不支持也不允许文件压缩,2不能设置file属性必须留空
        -->
        <appender name="fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!-- 如果是true,日志被追加到文件结尾,如果是false,清空现存文件.默认是true -->
            <prudent>true</prudent>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- 每天滚动一次的日志 只保留30天内的日志文件 -->
                <fileNamePattern>logs/%d{yyyy-MM-dd}/springboot_%i.log</fileNamePattern>
                <maxHistory>30</maxHistory>
                <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>10MB</maxFileSize>
                </timeBasedFileNamingAndTriggeringPolicy>
            </rollingPolicy>
            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                <!-- 对日志进行格式化 -->
                <pattern>%date %level [%thread] %logger{10}.%class{0}#%method[%file:%line] %n%msg%n</pattern>
                <charset>utf-8</charset>
            </encoder>
        </appender>
    
        <appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <prudent>true</prudent>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>logs/%d{yyyy-MM-dd}/springboot-error_%i.log</fileNamePattern>
                <maxHistory>30</maxHistory>
                <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>10MB</maxFileSize>
                </timeBasedFileNamingAndTriggeringPolicy>
            </rollingPolicy>
            <encoder>
                <pattern>%date %level [%thread] %logger{10}.%class{0}#%method[%file:%line] %n%msg%n</pattern>
                &l
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇读Java性能权威指南(第2版)笔记.. 下一篇Spring 源码环境搭建

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目