spring boot-日志记录

Author Avatar
丁起男 02月 01,2021
  • 在其它设备中阅读本文章

spring boot-日志记录

slf4j介绍

slf4j,即简单日志门面(simple legging facade for java),部署具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,slf4j是一个用于日志系统的简单facde,允许最终用户在部署其应用时使用希望的日志系统

使用

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

private static final Logger log = LoggerFactory.getLogger(Test.class);

配置

springboot内部集成了slf4j,一般我们使用的时候,会对slf4j做一下配置

application.yml

logging:
  config: logback.xml
  level: 
    com.dqn.logdemo: debug
  • logging.config:指定项目启动的时候,读取哪个配置文件。默认classpath:logback.xml

  • logging.level:指定具体的日志输出级别

    常用日志级别从高到低:error、warn、info、debug

设置位置文件后等价失效

logback.xml

定义日志输出格式:

<property name="log_pattern" value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />
  • %date:时间
  • %thread:线程名
  • %-5level:级别从左显示5个字符宽度
  • %logger{36}:logger名字最长36个字符
  • %msg:日志消息
  • %n:换行

定义存储路径:

<property name="file_path" value="logs/log.%d{yyyy-MM-dd}.%i.log" />
  • %i:第i个文件,当日志文件达到指定大小时,会将日志生成到新的文件里
  • %d:日期

输出到控制台:

<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
     <encoder>
         <!--格式-->
         <pattern>${log_pattern}</pattern>
     </encoder>
 </appender>

日志文件参数:

<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
  	<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
       	<!-- 按照上面配置的FILE_PATH路径来保存日志 -->
       	<fileNamePattern>${file_path}</fileNamePattern>
       	<!-- 日志保存15天 -->
       	<maxHistory>15</maxHistory>
       	<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <!-- 单个日志文件的最大,超过则新建日志文件存储 -->
            <maxFileSize>10MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPoli
    <encoder>
        <!-- 按照上面配置的LOG_PATTERN来打印日志 -->
        <pattern>${log_pattern}</pattern>
    </encoder>
</appender>

日志输出级别:

<root level="warn">
    <appender-ref ref="console" />
    <appender-ref ref="file" />
</root>