springboot配置logback日志

1、springboot默认使用logBack日志系统
2、springboot的logBack依赖spring-boot-starter-logging包
3、如果要定义日志配置文件,默认的名字为logback-spring.xml,默认要求放在resources文件夹下
4、如果使用springboot日志的基础配置,logging.file和logging.path不能同时使用,如果同时使用,则只有logging.file生效
如果只设置了logging.file,则会在当前路径下生成xxx.log文件
如果只设置了logging.path,则会在设置的路径下生成一个spring.log文件

<?xml version="1.0" encoding="UTF-8"?>

<!--scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。-->
<!--scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。-->
<!--debug: 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。-->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <!--如果想读取spring配置文件中的属性(application.properties),可以使用标签springProperty,使用${name}来使用变量值-->
    <springProperty name="app.name" source="spring.application.name" defaultValue="mySpring"/>
    <springProperty name="log.path" source="log.path" defaultValue="/data/log"/>
    <!--用来定义变量值的标签,使用${name}来使用变量值-->
    <property name="log.file" value="${log.path}/${app.name}"/>
    <!--格式化输出:%d{yyyy-MM-dd HH:mm:ss.SSS}:表示日志输出时间    %thread:输出日志的进程名字     %-5level:级别从左显示5个字符宽度  %msg:日志消息    %n:是换行符-->
    <property name="normal-pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-20thread] %-5level %logger{50}:%L - %msg%n"/>
    <!--控制台输出可设置每个字段的颜色,方便本地调试查看-->
    <property name="colorful-pattern" value="%red(%d{yyyy-MM-dd HH:mm:ss.SSS}) %green(【%thread】) %highlight(【%-5level】) %cyan(【%logger{50}:%L】) -- %boldMagenta(%msg%n)"/>

    <!--输出到控制台-->
    <appender name="consoleInfo" class="ch.qos.logback.core.ConsoleAppender">
        <!--ThresholdFilter为系统定义的拦截器,用来过滤掉DEBUG级别以下的日志不输出到文件中-->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>DEBUG</level>
        </filter>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>${colorful-pattern}</pattern>
        </layout>
    </appender>

    <!--输出到文件-->
    <appender name="fileInfo" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--日志名称,如果没有File 属性,那么只会使用FileNamePattern的文件路径规则
            如果同时有<File>和<FileNamePattern>,那么当天日志是<File>,明天会自动把今天
            的日志改名为今天的日期。即,<File> 的日志都是当天的。-->
        <file>${log.file}.log</file>
        <append>false</append>
        <!--滚动策略,按照时间滚动 TimeBasedRollingPolicy-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 按照每天备份生成日志文件 %d可以包含一个时间格式,默认格式为yyyy-MM-dd  -->
            <fileNamePattern>${log.file}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!--每个文件大小限制64M,超过设置fileNamePattern中的%i会自增(默认是10M)-->
                <maxFileSize>64MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--只保留最近90天的日志-->
            <maxHistory>90</maxHistory>
            <!--用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志-->
            <totalSizeCap>1GB</totalSizeCap>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出-->
            <pattern>${normal-pattern}</pattern>
            <!--字符编码-->
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!--level表示要打印日志的级别,addtivity表示消息是否向上级传递,默认为true-->
    <!--如果logger标签中没有指定appender,则此logger本身不打印任何日志,会将级别为info及其以上的日志消息传递给root-->
    <logger name="org.springframework" level="INFO" additivity="false"/>

    <root level="DEBUG">
        <appender-ref ref="consoleInfo"/>
        <appender-ref ref="fileInfo"/>
    </root>

</configuration>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值