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