springboot配置logback-spring.xml文件详解

生产配置模板:(可以作为模板直接使用)
使用该配置会生成两个文件夹 info和error,分别存放info和error级别的日志文件,具体见配置文件。

<?xml version="1.0" encoding="UTF-8"?>
<!--property用于配置变量,可通过${LOG_PATH} 取对应的值-->
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_PATH" value="c:/mylog/my"/>
<property name="PATTERN"
          value="%d{yyyy-MM-dd HH:mm:ss} === [%thread] === %-5level === %logger{50} ==== %msg%n"/>
<property name="CONSOLE_LOG_PATTERN"
          value="%date{yyyy-MM-dd HH:mm:ss} | %highlight(%5p) | %green(%thread) | %boldMagenta(%logger) | %cyan(%msg%n)"/>

<contextName>logback</contextName>

<!--输出到控制台,一个appender定义一种输出策略,可以定义多个-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    <!--filter中定义要输出的日志级别,例如:输出info级别以上的日志,默认是info-->
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>info</level>
    </filter>
    <!--日志输出编码格式化-->
    <encoder>
        <pattern>${CONSOLE_LOG_PATTERN}</pattern>
        <charset>UTF-8</charset>
    </encoder>
</appender>


<!-- 输出到文件info,日期滚动记录 -->
<appender name="logInfoFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <!--<Prudent>true</Prudent>-->
    <!--如果只是想要 Info 级别的日志,只是过滤 info 还是会输出 Error 日志,因为 Error 的级别高,所以我们使用下面的策略,可以避免输出 Error 的日志-->
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <!--过滤 其他只留info-->
        <level>info</level>
        <!--匹配到就禁止-->
        <onMatch>ACCEPT</onMatch>
        <!--没有匹配到就允许-->
        <onMismatch>DENY</onMismatch>
    </filter>
    <!--日志名称,如果没有File 属性,那么只会使用FileNamePattern的文件路径规则
           如果同时有<File>和<FileNamePattern>,那么当天日志是<File>,明天会自动把今天
           的日志改名为今天的日期。即,<File> 的日志都是当天的。-->
    <!--滚动策略,按照时间滚动 TimeBasedRollingPolicy 每天会生成一个日志文件-->
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间-->
        <fileNamePattern>${LOG_PATH}/info/iot-info-%d{yyyy-MM-dd}.log</fileNamePattern>
        <!--只保留最近90天的日志-->
        <maxHistory>90</maxHistory>
        <!--用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志-->
        <!--<totalSizeCap>1GB</totalSizeCap>-->
    </rollingPolicy>

    <append>true</append>

    <!--展示格式 layout-->
    <!--<layout class="ch.qos.logback.classic.PatternLayout">-->
        <!--<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>-->
    <!--</layout>-->
    <!--日志输出编码格式化-->
    <encoder>
        <charset>GBK</charset>
        <pattern>${PATTERN}</pattern>
    </encoder>
</appender>


<!--输出到文件error,日期滚动记录 -->
<appender name="logErrorFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <!--只记录error-->
        <level>error</level>
        <onMatch>ACCEPT</onMatch>
        <onMismatch>DENY</onMismatch>
    </filter>

    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <FileNamePattern>${LOG_PATH}/error/iot-error-%d{yyyy-MM-dd}.log</FileNamePattern>
        <maxHistory>90</maxHistory>
    </rollingPolicy>

    <!--追加记录-->
    <append>true</append>

    <encoder>
        <charset>GBK</charset>
        <pattern>${PATTERN}</pattern>
    </encoder>
</appender>
<!--开发环境-->
<springProfile name="dev">
    <!--必选节点,用来指定最基础的日志输出级别-->
    <root level="DEBUG">

        <appender-ref ref="logInfoFile"/>

        <appender-ref ref="logErrorFile"/>

        <appender-ref ref="console"/>

        <!--<appender-ref ref="DBAPPENDER"/>-->

    </root>

</springProfile>

<!--生产环境-->
<springProfile name="pro">
    <!--必选节点,用来指定最基础的日志输出级别-->
    <root level="INFO">
        <appender-ref ref="logInfoFile"/>

        <appender-ref ref="logErrorFile"/>

        <appender-ref ref="console"/>

        <!--<appender-ref ref="DBAPPENDER"/>-->
    </root>

</springProfile>








<!--日志异步到数据库  -->

<!--<appender name="DBAPPENDER" class="ch.qos.logback.classic.db.DBAppender">-->

<!--<connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource">-->

<!--<dataSource class="com.zaxxer.hikari.HikariDataSource">-->

<!--<driverClassName>com.mysql.jdbc.Driver</driverClassName>-->

<!--<jdbcUrl>jdbc:mysql://localhost:3306/albedo-new?useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false</jdbcUrl>-->

<!--<username>root</username>-->

<!--<password>123456</password>-->

<!--<poolName>HikariPool-logback</poolName>-->

<!--</dataSource>-->

<!--</connectionSource>-->

<!--&lt;!&ndash; 此日志文件只记录info级别的 &ndash;&gt;-->

<!--<filter class="ch.qos.logback.classic.filter.LevelFilter">-->

<!--<level>warn</level>-->

<!--<onMatch>ACCEPT</onMatch>-->

<!--<onMismatch>DENY</onMismatch>-->

<!--</filter>-->

<!--&lt;!&ndash; 此日志文件只记录info级别的 &ndash;&gt;-->

<!--<filter class="ch.qos.logback.classic.filter.LevelFilter">-->

<!--<level>error</level>-->

<!--<onMatch>ACCEPT</onMatch>-->

<!--<onMismatch>DENY</onMismatch>-->

<!--</filter>-->

<!--</appender>-->

转载自https://blog.csdn.net/gexiaoyizhimei/article/details/93907932
根据自己的实际情况略有改动

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值