SpringBoot —— 整合Logback,输出日志到文件

文章目录

  • 前言
  • 一、logback日志组件
    • 1.日志等级
    • 2.打印日志
  • 二、配置
    • 1.简单配置
    • 2.扩展配置
    • 3.代码测试
  • 三、启动过程的错位
  • 总结

前言

SpringBoot系列Demo代码,整合logback,设置输出日志。

一、logback日志组件

logback是一款开源日志组件,属于Log4j的升级版本,现在项目组使用的次数越来越多。

1.日志等级

日志级别有(从高到低):FATAL(致命),ERROR(错误),WARN(警告),INFO(信息),DEBUG(调试),TRACE(跟踪)或者 OFF(关闭),默认的日志配置在消息写入时将消息回显到控制台。默认情况下,将记录错误级别、警告级别和信息级别的消息。

2.打印日志

通过Class的方式初始化

private final static Logger LOGGER = LoggerFactory.getLogger(HelloLogback.class);

二、配置

1.简单配置

如果不需要进行复杂的日志配置,则在配置文件中进行简单的日志配置即可(默认情况下,SpringBoot日志只记录到控制台,不写日志文件)

#日志配置
logging:
  level:
    #日志级别 root表示所有包,也可以单独配置具体包 fatal error warn info debug trace off
    root: info
  file:
    path: /local/log/dev
    name: app.log

2.扩展配置

如果需要比较复杂的配置,建议使用扩展配置的方式,SpringBoot推荐我们使用带-spring后缀的 logback-spring.xml 扩展配置,因为默认的的logback.xml标准配置,Spring无法完全控制日志初始化。(spring扩展对springProfile节点的支持)

logback-spring.xml





<configuration scan="true" scanPeriod="60" debug="false">
    
    <property name="LOG_HOME" value="/local/log/dev"/>
    
    
    <property name="pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %X[%thread] %-5level %logger{50} %line - %msg%n"/>
    
    <property name="APP_NAME" value="app"/>
    

    
    
    
    

    
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            
            <FileNamePattern>${LOG_HOME}/%d{yyyyMMdd}/${APP_NAME}.%i.logFileNamePattern>
            
            <MaxHistory>15MaxHistory>
            
            <MaxFileSize>14KBMaxFileSize>
        rollingPolicy>
        
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${pattern}pattern>
            <charset>UTF-8charset>
        encoder>
        
        
        
        
        
        
    appender>

    
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            
            <pattern>${pattern}pattern>
            
            <charset>UTF-8charset>
        encoder>
    appender>






    
    <appender name="ASYNC-FILE" class="ch.qos.logback.classic.AsyncAppender">
        
        <discardingThreshold>0discardingThreshold>
        <queueSize>256queueSize>
        
        <appender-ref ref="FILE"/>
    appender>

    
    <springProfile name="dev">
        
        <root level="INFO">
            <appender-ref ref="CONSOLE"/>
            <appender-ref ref="ASYNC-FILE"/>
        root>

        
        
        
        
    springProfile>
    <springProfile name="prod">
        <root level="INFO">
            
            
        root>
    springProfile>
configuration>

springProfile节点设置,application.yml

spring:
  profiles:
    active: dev

3.代码测试

SpringBoot —— 整合Logback,输出日志到文件_第1张图片

SpringBoot —— 整合Logback,输出日志到文件_第2张图片
在这里插入图片描述
启动项目,调用接口,查看日志文件输出
SpringBoot —— 整合Logback,输出日志到文件_第3张图片
SpringBoot —— 整合Logback,输出日志到文件_第4张图片

三、启动过程的错位

在项目启动时,出现如下错误:
在这里插入图片描述

发现时MaxFileSize出现错误,排查后发现是配置文件中错误:
SpringBoot —— 整合Logback,输出日志到文件_第5张图片
SpringBoot —— 整合Logback,输出日志到文件_第6张图片
TimeBasedRollingPolicy中并没有MaxFileSize属性,于是修改为SizeAndTimeBasedRollingPolicy
SpringBoot —— 整合Logback,输出日志到文件_第7张图片
启动正常,问题成功解决。

总结

以上就是今天要讲的内容,本文仅仅简单介绍了日志根据时间和大小输出到文件的实现,后续还会完善。

« 上一章:SpringBoot —— Swagger UI、Swagger-Bootstrap-UI,API实时接口文档
» 下一章:SpringBoot —— 实现邮件、短信的发送功能

你可能感兴趣的:(Spring,Boot,spring,boot,logback,logging)