Java中logback 自动刷新不生效的问题解决
一、背景
今天心血来潮,准备测试一下项目中 logback 的自动刷新功能,但是测试时发现并不生效。logback 的配置如下:
<configuration scan="true" scanPeriod="10 seconds">
可以看到,配置了 10s 的自动刷新
二、问题排查
排查这种问题最好的方法,看日志。所以我们需要先开启 logback 自身运行时的日志,在配置项中增加一个 debug 配置,开启方法如下:
<configuration scan="true" scanPeriod="10 seconds" debug="true">
启动项目,发现输出了如下日志:

此异常日志不影响项目最终启动成功。重点在这句话:
Failed to rename context [logback] as [nacos] java.lang.IllegalStateException: Context has been already given a name
通过日志猜测,是 nacos 自带的 logback 影响了 springboot 服务中配置的 logback,导致自动刷新不生效
三、问题处理
我们选择禁用掉 nacos 的 logback,在 nacos 官网找了一圈后,发现可以通过以下参数禁用 nacos.logging.default.config.enabled ,推荐两种配置方式:
- 在启动参数中添加:
-Dnacos.logging.default.config.enabled=false - 在 springboot 的启动类中,增加如下配置:
public static void main(String[] args) {
// 禁用 nacos 的默认日志
System.setProperty("nacos.logging.default.config.enabled", "false");
SpringApplication.run(OrderApplication.class, args);
}以上两种方法均可。添加完成后,scanPeriod 的自动刷新就生效了。
另外说一个小坑,如果是在本地的 idea 中测试 logback 的自动刷新,记得在修改了 logback 的配置后,需要对文件进行重新编译(或者直接修改 target 下 classes 中的 logback 文件)
到此这篇关于Java中logback 自动刷新不生效的问题解决的文章就介绍到这了,更多相关Java logback 自动刷新不生效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
java 合并排序算法、冒泡排序算法、选择排序算法、插入排序算法、快速排序算法的描述
算法是程序设计的精髓,程序设计的实质就是构造解决问题的算法,将其解释为计算机语言。2009-06-06
springboot+vue前后端分离项目中使用jwt实现登录认证
本文介绍了如何在SpringBoot+Vue前后端分离的项目中使用JWT实现登录认证,内容包括后端的响应工具类、JWT工具类、登录用户实体类、登录接口、测试接口、过滤器、启动类以及前端的登录页面实现,感兴趣的可以了解一下2024-10-10
关于mybatis if else if 条件判断SQL片段表达式取值和拼接问题
这篇文章主要介绍了mybatis if else if 条件判断SQL片段表达式取值和拼接,文章通过自己真实使用的例子给大家详细介绍,需要的朋友可以参考下2021-09-09
最新IntelliJ IDEA 2022配置 Tomcat 8.5 的详细步骤演示
这篇文章主要介绍了IntelliJ IDEA 2022 详细配置 Tomcat 8.5 步骤演示,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-08-08


最新评论