springboot学习日志之DAY10日志配置

48 篇文章 0 订阅
38 篇文章 2 订阅

SpringBoot之日志配置



     springboot日志配置文档介绍:

        官方文档地址:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html

        国内大神翻译的中文文档:https://blog.csdn.net/Quincuntial/column/info/13024

      常用属性说明:

         文档上有很多的说明,这里简单说一些比较常用的重要属性:

         1 默认是使用的LogBack作为日志模块,但是底层也是支持提供了对Java Util Logging,Log4J2和Logback的默认实现。在每个logger中都预先配置使用控制台作为输出,同时也可用可选的文件输出。

       2 Springboot支持在application.properties设置日志相关信息,也支持自定义一个xml来配置日志信息。前者在进行文件输出的时候无法做到按天生产配置文件。可以用过自定义xml文件俩实现。

       3 springboot默认会读取resource下面的一些命名规范的日志配置文件,因此只要符合命名规范就不需要添加额外的配置。例如: logback-spring.xml, logback-spring.groovy, logback.xml ,logback.groovy

     一个简单的日志配置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
    <!--输出error信息日志到文件当中-->
    <appender name="error_file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>
                [%-5level] %red([%date{yyyy-MM-dd HH:mm:ss}]) %green([%logger{10}]) [%line] - %msg%n
            </pattern>
            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily 配置日志所生成的目录以及生成文件名的规则 -->
            <fileNamePattern>logs/fastboot-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日志文档保留天数-->
            <maxHistory>15</maxHistory>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>  <!--只输出error级别的信息到文件当中-->
        </filter>
        <prudent>true</prudent>
    </appender>
    <!--输出warn信息日志到文件当中-->
    <appender name="warn_file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>
                %green[%-5level] %red([%date{yyyy-MM-dd HH:mm:ss}]) %blue([%logger{10}]) [%line] - %msg%n
            </pattern>
            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily 配置日志所生成的目录以及生成文件名的规则 -->
            <fileNamePattern>logs/fastboot-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日志文档保留天数-->
            <maxHistory>15</maxHistory>
        </rollingPolicy>
        <!-- 此日志文档只记录WARN级别的 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>WARN</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <prudent>true</prudent>
    </appender>    
    <!--输出info信息日志到文件当中-->
    <appender name="info_file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>
                %green[%-5level] %red([%date{yyyy-MM-dd HH:mm:ss}]) %blue([%logger{10}]) [%line] - %msg%n
            </pattern>
            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily 配置日志所生成的目录以及生成文件名的规则 -->
            <fileNamePattern>logs/fastboot-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日志文档保留天数-->
            <maxHistory>15</maxHistory>
        </rollingPolicy>
        <!-- 此日志文档只记录WARN级别的 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <prudent>true</prudent>
    </appender>   
    <!--输出debug信息日志到文件当中-->
    <appender name="debug_file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>
                %green[%-5level] %red([%date{yyyy-MM-dd HH:mm:ss}]) %blue([%logger{10}]) [%line] - %msg%n
            </pattern>
            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily 配置日志所生成的目录以及生成文件名的规则 -->
            <fileNamePattern>logs/fastboot-DEBUG-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日志文档保留天数-->
            <maxHistory>15</maxHistory>
        </rollingPolicy>
        <!-- 此日志文档只记录WARN级别的 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>DEBUG</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <prudent>true</prudent>
    </appender>
    <!--输出日志到控制台当中-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>
                [%-5level] %red([%date{yyyy-MM-dd HH:mm:ss}]) %green([%logger{10}]) [%line] - %msg%n
            </pattern>
            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
        </encoder>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
    </appender>
    <!--生产环境记录所有信息到日志文件当中-->
    <springProfile name="prod">
        <root level="DEBUG">
            <appender-ref ref="error_file"/>
            <appender-ref ref="warn_file"/>
            <appender-ref ref="info_file"/>
            <appender-ref ref="debug_file"/>
        </root>
    </springProfile>
    <!--开发环境只需要展示在控制台-->
    <springProfile name="dev">
        <root level="INFO">
            <appender-ref ref="console"/>
        </root>
    </springProfile>
    <!--将本项目的代码sql日志输出到日志文件当中 -->
    <logger name="cn.hjljy.fastboot.mapper" additivity="false" level="debug">
        <appender-ref ref="console"/>
    </logger>
</configuration>
该配置可以直接使用,只需要将最后的logger name属性修改一下就可以了

日志控制台颜色的处理:

 [%-5level]  %red([%date{yyyy-MM-dd HH:mm:ss}]) %green([%logger{10}]) [%line] - %msg%n

如上所示使用 %red()   就可以将括号里面的日志显示为红色了。

   

推荐一些非常详细的日志配置文章:

     文章1: https://juejin.im/post/58f86981b123db0062363203

     文章2 :https://www.cnblogs.com/zhangzhen894095789/p/6640808.html

 

我的个人博客:海加尔金鹰的个人博客


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值