Spring boot—logback日志构建

spring boot是一款能够快速搭建应用的框架。它里面也包含了日志系统,例如我们在application.properties中加入

logging.file=日志路径
logging.level.包名=级别

这样就能配置简单的日志系统。
但是这样所有的日志就跑到了一个文件中了,对日志的查看很不方便。
我们可以采用logback对日志做出一定的控制,比如我们按日期来输出日志,这样使工程更加简洁规范。
我们现在classpath下加入logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
    <!--生产环境下的属性文件-->
    <springProfile name="prd">
        <property resource="logback-prd.properties"/>
    </springProfile>
    <!--开发下的属性文件-->
    <springProfile name="dev">
        <property resource="logback-dev.properties"/>
    </springProfile>
    <!--配置日志-->
    <appender name="file-info" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--拦截info等级的日志输出-->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>info</level>
        </filter>
        <Prudent>true</Prudent>
        <rollingPolicy
                class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--文件名-->
            <FileNamePattern>
                ${logback.dir}/${logback.info.filename}-%d{yyyy-MM-dd}.log
            </FileNamePattern>
            <!--最大保存时间-->
            <MaxHistory>${logback.maxhistory}</MaxHistory>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss} -%msg%n
            </Pattern>
        </layout>
        <encoder>
            <!--输出格式-->
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <!--包含基础的logback的配置文件-->
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <!--将org.springframework.web包下的info等级日志进行输出-->
    <logger name="org.springframework.web" level="info">
        <!--加入日志的配置-->
        <appender-ref ref="file-info" />
    </logger>
    <!--将logback.controller.dir属性包下的info等级日志进行输出-->
    <logger name="${logback.controller.dir}" level="info">
        <!--加入日志的配置-->
        <appender-ref ref="file-info" />
    </logger>
</configuration>

我们可以看到上面有许多${}这种属性的提取,所以我们加入属性配置文件。

<!--生产环境下的属性文件-->
    <springProfile name="prd">
        <property resource="logback-prd.properties"/>
    </springProfile>
    <!--开发下的属性文件-->
    <springProfile name="dev">
        <property resource="logback-dev.properties"/>
    </springProfile>

在文件的开头我们配置了不同环境下的属性配置文件,这样我们能根据不同的环境换不同的属性文件,使得我们不用再去动基本固定的log配置文件。
先在classpath下加入logback-dev.properties

#开发环境下的log配置
#控制层路径
logback.controller.dir=com.creat.bookfriend.controller
#文件目录
logback.dir=D:/mylog/book_friend_logs/
#文件前缀名
logback.info.filename=/log-info
#保存时长
logback.maxhistory=60
#编码格式
logback.charset=UTF-8

再加入logback-prd

#生产环境下的log配置
#控制层路径
logback.controller.dir=com.creat.bookfriend.controller
#文件目录
logback.dir=${CATALINA_HOME}/logs/book_friend
#文件前缀名
logback.info.filename=/log-info
#保存时长
logback.maxhistory=60
#编码格式
logback.charset=UTF-8

最后我们只需要在application.xml下加入属性映射

#生产环境配置
spring.profiles.active=dev//或者prd

使springboot自动对属性配置文件进行不同环境下的调节。这样的配置使得工程更加方便调节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值