SpringBoot使用logback自定义配置时遇到的坑

Stella981
• 阅读 721

##问题描述 SpringBoot项目使用logback自定义配置后,会在/tmp/ 目录下生成 spring.log的文件(如下图所示)。 SpringBoot使用logback自定义配置时遇到的坑

##解决方案 通过各种资料的搜索,最终发现问题的所在(logback配置如下)。

<?xml version="1.0" encoding="UTF-8"?>    
<configuration scan="true">    
  <include resource="org/springframework/boot/logging/logback/base.xml"/>    

  <springProperty scope="context" name="springAppName" source="spring.application.name"/>    
  <property name="LOG_FILE" value="logs/${springAppName}"/>​    

  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">    
    <layout class="ch.qos.logback.classic.PatternLayout">    
      <pattern>    
        %black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %yellow(%C{1.}): %msg%n%throwable    
      </pattern>    
    </layout>    
  </appender>    
  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">    
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">    
      <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>    
      <maxHistory>90</maxHistory>    
      <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">    
        <maxFileSize>200MB</maxFileSize>    
      </timeBasedFileNamingAndTriggeringPolicy>    
    </rollingPolicy>    
    <encoder>    
      <charset>utf-8</charset>    
      <pattern>%d %-5level [%thread] %logger{0}: %msg%n</pattern>    
    </encoder>    
  </appender>    
  <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">    
    <queueSize>512</queueSize>    
    <appender-ref ref="FILE"/>    
  </appender>    
  <root level="DEBUG">    
    <appender-ref ref="CONSOLE"/>    
    <appender-ref ref="ASYNC"/>    
  </root>    

  <!-- https://logback.qos.ch/manual/configuration.html#shutdownHook and https://jira.qos.ch/browse/LOGBACK-1090 -->    
  <shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>    

  <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">    
    <resetJUL>true</resetJUL>    
  </contextListener>    

</configuration>

###通过分析上面配置发现base.xml中包含了以下内容:

<?xml version="1.0" encoding="UTF-8"?>
 
<!--
Base logback configuration provided for compatibility with Spring Boot 1.1
-->
 
<included>
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />
    <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/>
    <include resource="org/springframework/boot/logging/logback/console-appender.xml" />
    <include resource="org/springframework/boot/logging/logback/file-appender.xml" />
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>
</included>

从base.xml中可以看出来,会在/tmp/目录下默认生成一个spring.log,问题已经发现了,那就说明这里的配置需要更改,改成什么呢? 通过在github上查询,只需要将

<include resource="org/springframework/boot/logging/logback/base.xml"/>

替换成

<include resource="org/springframework/boot/logging/logback/defaults.xml" />

即可。

问题解决。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Easter79 Easter79
3年前
SpringBoot使用logback自定义配置时遇到的坑
问题描述SpringBoot项目使用logback自定义配置后,会在/tmp/目录下生成spring.log的文件(如下图所示)。!(https://oscimg.oschina.net/oscnet/a876c5154d152b266a24066a444a685aede.png)解决方案通过各种资料的搜索,最终发现问题的所在(lo
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Stella981 Stella981
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Easter79 Easter79
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这