springboot配置log输出到本地文件

svbadmin学习日志

本学习日志是使用Springboot和Vue来搭建的后台管理系统:
演示地址:http://118.31.68.110:8081/index.html
账号:root
密码:123
所有代码可以在gitbub上找到,切换到相应分支即可。【代码传送门】

正篇

第一节 spring boot 模块化构建项目
第二节 整合mybatisplus完成用户增删改查
第三节 整合springsecurity实现基于RBAC的用户登录
第四节 springsecurity结合jwt实现前后端分离开发
第五节 使用ResponseBodyAdvice格式化接口输出
第六节 springboot结合redis实现缓存策略
第七节 springboot结合rabbitmq实现队列消息
第八节 springboot结合rabbitmq实现异步邮件发送
第九节 利用springboot的aop实现行为日志管理
第十节 利用Quartz实现数据库定时备份
第十一节 springboot配置log输出到本地文件
第十二节 使用flyway对数据库进行版本管理
第十三节 springboot配合VbenAdmin实现前端登录
第十四节 springboot配合VbenAdmin实现用户CURD
第十五节 基于RBAC的权限管理VbenAdmin前端实现
第十六节 springboot 打包vue代码实现前后端统一部署

番外

2.1 数据库设计原则
3.1 配置apifox自动获取登录的token
13.1 springboot 全局捕捉filter中的异常
14.1 springsecurity整合mybatisplus出现isEnable的问题和解决方案


前言

我们可以很方便的结合@Slf4j注解实现日志的输出,做上一些配置可以将日志保存到本地,便于排查问题,特别是针对物联网应用,一般需要记录下上传上来的数据,便于排查问题。通常我们可以用xml来进行配置。


一、加入配置

xml


<configuration scan="true" scanPeriod="30 seconds" debug="true">
    

    
    <springProperty scope="context" name="LOG_HOME" source="log.path"/>
    <springProperty scope="context" name="APP_NAME"  source="spring.application.name"/>
    
    <property name="LOG_PATTERN"
              value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%5level) -- [%15.15t] %cyan(%-23.23logger{23}) : %m%n"/>


    
    
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${LOG_PATTERN}pattern>
            
            <charset>utf8charset>
        encoder>
    appender>

    
    <appender name="INFO-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
        
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFOlevel>
        filter>
        
        <file>${LOG_HOME}/${APP_NAME}-info.logfile>
        
        <append>trueappend>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            
            <fileNamePattern>${LOG_HOME}/${APP_NAME}-info.%d{yyyy-MM-dd}.%i.logfileNamePattern>
            
            <maxHistory>30maxHistory>
            
            <maxFileSize>100MBmaxFileSize>
        rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${LOG_PATTERN}pattern>
            <charset>utf8charset>
        encoder>
    appender>

    
    <appender name="ERROR-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
        
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERRORlevel>
            <onMatch>ACCEPTonMatch>
            <onMismatch>DENYonMismatch>
        filter>
        
        <file>${LOG_HOME}/${APP_NAME}-error.logfile>
        <append>trueappend>
        
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            
            <fileNamePattern>${LOG_HOME}/${APP_NAME}-error.%d{yyyy-MM-dd}.%i.logfileNamePattern>
            
            <maxHistory>30maxHistory>
            
            <maxFileSize>100MBmaxFileSize>
        rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${LOG_PATTERN}pattern>
            <charset>utf8charset>
        encoder>
    appender>

    
    <root level="INFO">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="INFO-APPENDER"/>
        <appender-ref ref="ERROR-APPENDER"/>
    root>
configuration>

application.properties

# log
log.path = ./logs
spring.application.name=sbvadmin

二、测试

1.@Slf4j注解

2.log.info

springboot配置log输出到本地文件_第1张图片


总结

  1. 配置文件可以直接叫logback.xml或者logback-spring.xml
  2. root节点很重要,记得把appender都配置进去

问题

  1. 只创建了文件,但文件是空白
    可能就是因为appender没有配置到root

代码地址

代码


参考文档:
Springboot项目使用Logback把日志输出到控制台或输出到文件

你可能感兴趣的:(svbadmin,spring,boot,java,java-rabbitmq)