springboot整合logback,项目根路径生成多余日志文件问题解决

问题描述:

Springboot整合logback并添加logback-spring.xml配置文件,启动项目后会在【配置的指定目录】及【项目根路径】下生成日志文件。
指定目录下生成的日志文件正常,项目根路径下生成的日志文件名为"XXX_IS_UNDEFINED"、“XXX_IS_UNDEFINED-XXX.XXX_IS_UNDEFINED”(文件数量与logback-spring.xml中配置的文件数量相同),并且为无内容的空文件。
很显然项目根路径下生成的日志文件是不需要的。
在这里插入图片描述

原因分析:

在没有logback-spring.xml配置文件的情况下,application.yml配置日志文件路径 logging:path: 后,会在配置路径下生成spring.log文件,经研究发现生成文件的位置可能为:
在这里插入图片描述
项目存在logback-spring.xml配置文件后,便会读取该配置文件。logback-spring.xml中引用了application.yml中自定义的变量,并重新配置了日志文件路径,产生"XXX_IS_UNDEFINED"、"XXX_IS_UNDEFINED-XXX.XXX_IS_UNDEFINED"文件很可能是项目启动时读取logback-spring.xml配置文件没有获取到配置中的引用值导致的。
在这里插入图片描述
如果logback-spring.xml配置中的引用值是无效的,那就不会在配置的目录下生成的正常的日志文件了。
现在出现的情况是配置的目录下正常生成了日志文件,只是在项目根路径下额外生成了日志文件,那应该可能是在项目依赖中在获取自定义的path之前有做过一次logback-spring.xml配置的加载,因为获取到的自定义变量为null,所以在默认路径下生成了日志文件。

解决方案:

1、logback配置文件添加配置:

	<!--application.yml 传递参数,不能使用logback 自带的<property>标签 -->
    <property name="LOG_HOME" value="logDir"/>

2、将默认加载的配置文件名称logback.xml或logback-spring.xml修改为自定义名称xxx.xml
3、application.yml配置中指定logback配置文件路径:logging:config: classpath:xxx.xml
在这里插入图片描述
这样没有默认加载的配置文件,便不会额外在项目根目录下生成日志文件了。
具体logback-spring.xml在什么位置被重复加载,需有时间进一步研究后补充。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值