本文介绍springboot中的logback配置:
默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。在运行应用程序和其他例子时,你应该已经看到很多INFO级别的日志了。
从上图可以看到,日志输出内容元素具体如下:
时间日期:精确到毫秒
日志级别:ERROR, WARN, INFO, DEBUG or TRACE
进程ID
分隔符:— 标识实际日志的开始
线程名:方括号括起来(可能会截断控制台输出)
Logger名:通常使用源代码的类名
日志内容
在项目的resource目录下新建logback.xml文件
具体配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!--
scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,
此属性生效。默认的时间间隔为1分钟。
debug: 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
-->
<!--<contextName>logback-demo</contextName> 区分不同应用程序的记录-->
<!--
用来定义变量的标签, 有两个属性:name 、value;
其中name的是变量名,value 是变量值。定义变量后,可以使 ${} 来使用变量。
-->
<property name="LOG_HOME" value="D:\\log\\blog-web"/>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>
<![CDATA[
weblog|%date{yy-MM-dd HH:mm:ss.SSS}|%thread|%level|%X{gloId}|%X{sessionId}|%X{userId}|%logger{10}|%msg%n
]]>
</pattern>
</layout>
<!--<encoder charset ="UTF-8">
<pattern>%d -2 %msg%n</pattern>
</encoder>-->
</appender>
<appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间-->
<FileNamePattern>${LOG_HOME}/info.${ServerId}.%d{yyyy-MM-dd}.log</FileNamePattern>
<!--只保留最近7天的日志-->
<maxHistory>7</maxHistory>
<!--用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志-->
<!--<totalSizeCap>1GB</totalSizeCap>-->
</rollingPolicy>
<!--日志输出编码格式化-->
<encoder>
<charset>UTF-8</charset>
<pattern>%d{yy-MM-dd HH:mm:ss.SSS}|%thread|%-5level %logger -%msg%n</pattern>
</encoder>
</appender>
<!--指定最基础的日志输出级别-->
<root level="INFO" >
<appender-ref ref="console"/>
<appender-ref ref="rollingFile"/>
</root>
</configuration>