动态实时读取nacos配置文件log level值,不重启服务,且生效

问题背景:

目前需要根据nacos配置中log level来打印日志,比如我原来是info级别,现在改为DEBUG级别,那么通过nacos如何来实现这个,前提是需要修改nacos实时生效,不用重启服务?

我尝试过的方法:

我尝试过的方法:在微服务的类添加@RefreshScope注解,在bootstrap.yml文件设置refresh为true,然后在类中用@value注解读取nacos的log level最新值,通过一段logback的代码来设置最新的log level。这个方法可以实现。但是leader说应该有不用写代码就可以搞定,比如加注解之类就行。目前没有找到相关资料

我期待的结果是:

不用再每个服务里面都写相同的logback设置log level代码,只需要注解或者其他方法就可以实现,实时修改nacos,不用重启项目就可以生效的方法。

备注:

比如我有多个微服务,那么在nacos里面,有个common,还有每个单独微服务的配置,里面都有log level的设置,有木有办法通过修改common的log level生效,且不会被单独服务中的log level覆盖掉?

阅读 10k
2 个回答

用Arthas吧。一行命令的事情。无侵入。实时生效。

新手上路,请多包涵

有一个解决方法,弄一个专门做这个的通用模块,然后所有服务都引用依赖该模块

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题