Spring boot—logback日志构建

来源:互联网 发布:淘宝上买枪会判刑么 编辑:程序博客网 时间:2024/06/06 11:45

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自动对属性配置文件进行不同环境下的调节。这样的配置使得工程更加方便调节。

原创粉丝点击