2021-07-30碰到加了logback-spring.xml依然不生效的问题,特此记录。

发现问题

在项目中引入logback-spring.xml文件,该文件配置了会在项目根目录下生成logs文件夹,但是运行项目之后发现没有生成文件夹。

问题原因

classpath下已经存在logback.xml文件

解决方案

spring默认会自动查找classpath下以下几个文件:

  • logback-test.groovy
  • logback-test.xml
  • logback.groovy
  • logback.xml

详见源码org.springframework.boot.logging.logback.LogbackLoggingSystem#getStandardConfigLocations

protected String[] getStandardConfigLocations() {
return new String[] { "logback-test.groovy", "logback-test.xml", "logback.groovy", "logback.xml" };
}

如果classpath下存在logback.xml文件会默认使用,spring或默认自动拼接上-spring后缀,即如果classpath下存在logback.xml,会自动拼装成为logback-spring.xml,

详见源码org.springframework.boot.logging.AbstractLoggingSystem#getSpringConfigLocations

protected String[] getSpringConfigLocations() {
String[] locations = getStandardConfigLocations();
for (int i = 0; i < locations.length; i++) {
String extension = StringUtils.getFilenameExtension(locations[i]);
locations[i] = locations[i].substring(0, locations[i].length() - extension.length() - 1) + "-spring."
+ extension;
}
return locations;
}

方案一

查看pom.xml依赖的jar包中是否存在logback.xml文件,将该jar包删除。当然,既然项目中引入了该jar包说明是要用到的,所以不推荐

方案二

在配置文件中指定日志配置文件地址:

logging:
config: classpath:logback-spring.xml

Logback日志文件失效的更多相关文章

  1. logback日志文件位置动态指定

    logback日志文件位置动态指定 参考:https://stackoverflow.com/questions/19518843/logback-configuration-via-jvm-argu ...

  2. logback日志文件需要注意点

    1.支持的jar包 logback-access-1.1.1.jarlogback-classic-1.1.1.jarlogback-core-1.1.1.jar 2.logback.xml文件,we ...

  3. logback日志文件的使用

    1.引入Jar包,Maven pom.xml <!-- Logging with SLF4J & LogBack --> <dependency> <groupI ...

  4. Logback设置保留日志文件个数

    Logback日志文件占用存储空间太多,设置保留文件个数,清理之前的文件. 主要由如下三个参数配合使用 maxHistory ,可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件,,例如设置 ...

  5. springBoot生成日志文件

    一.安装lombok 说明: 安装bomlok后model可以不用写get.set方法,slf4j日志直接使用log打印 1. Maven Repository中下载lombok.jar 2. 将lo ...

  6. logback日志分开纪录

    LogBack 日志 文件分开纪录 在处理Log中,我们一般讲Log分为一下几类,Debug类型,Error类型,Info类型 等等.. 那么使用LogBack如何分开日志处理 代码如下: 当然也可以 ...

  7. SpringBoot入门一:基础知识(环境搭建、注解说明、创建对象方法、注入方式、集成jsp/Thymeleaf、logback日志、全局热部署、文件上传/下载、拦截器、自动配置原理等)

    SpringBoot设计目的是用来简化Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,SpringBoot致力于在蓬勃发 ...

  8. 使用logback.xml配置来实现日志文件输出

    转自:http://sungang-1120.iteye.com/blog/2104296 Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback- ...

  9. 扔掉log4j、log4j2,自己动手实现一个多功能日志记录框架,包含文件,数据库日志写入,实测5W+/秒日志文件写入,2W+/秒数据库日志写入,虽然它现在还没有logback那么强大

    讲到log4j,现在国外基本是没有开发者用这个框架了,原因大致有几点,1.功能太少:2.效率低下:3.线程锁bug等等等各种莫名其妙的bug一直都没解决. 其实最重要的是log4j的作者自己也放弃了l ...

  10. logback中配置的日志文件的生成地址

    配置文件如下 <?xml version="1.0" encoding="UTF-8"?> <configuration debug=&quo ...

随机推荐

  1. 兼容ios11的正则匹配

    ios11不支持正则零宽断言,以字符串 $哈哈哈(sh039488)$ 为例: 不兼容写法:/\$(?<=\$).*?(?=\)\$)\)\$/g 兼容写法:/\$(.*?)\)\$/g

  2. java游戏服务器2023年7月22日

    name 卡牌军团 放置卡牌游戏 开发语言: java mysql 通信http 账号服务器 提供验证等功能 中心服务器 跨服功能 排行榜 公会

  3. 无分号js风格注意的三个问题

    建议如果一行代码是以   (   [   `  开头的,则最好都在其前面补上一个分号. // 1.( function say() { console.log('hello world') } // ...

  4. 【YashanDB数据库】VMware虚拟机使用默认安装,在掉电之后数据库无法启动

    问题现象 客户使用VMware虚拟机使用默认安装,部署YashanDB个人版,在掉电之后无法启动 操作系统: Virtualization: VMware Operating System: Cent ...

  5. 物体检测序列之一:ap, map

    准确率(Precision),也叫正确预测率(positive predictive value),在模式识别.信息检索.机器学习等研究应用领域,准确率用来衡量模型预测的结果中相关或者正确的比例.而召 ...

  6. 704 二分查找 golang实现

    二分查找(Binary Search)是一种高效的查找算法,适用于 有序数组 或 有序列表.它的基本思想是通过将搜索范围逐渐缩小到目标元素所在的一半,从而大大减少查找的次数. 二分查找的基本原理 排序 ...

  7. Angular 18+ 高级教程 – Routing 路由 (原理篇)

    修改中... 前言 Angular 是 Single Page Application (SPA) 单页面应用,所谓的单页面是站在服务端的角度看,不管游览器请求什么路径,一律返回 index.html ...

  8. TypeScript – Get Started Advanced (Work with SystemJS)

    更新 我本来想 skip 掉 bundler (webpack), 感觉单侧不需要搞那么复杂, 所以用了 TypeScript 自带的 bundle (outFile) + SystemJS. 谁知道 ...

  9. SQL Server STRING_AGG

    参考: How To Use STRING_AGG – Concat Multiple Row Values In SQL Server 如果你想做 string.join(',', collecti ...

  10. Spring —— 注解开发(依赖注入)

    自动装配   引用类型         简单类型      加载properties文件