【问题标题】:is time based log level change possible in spring bootspring boot 中是否可以更改基于时间的日志级别
【发布时间】:2020-01-17 06:30:57
【问题描述】:

起初我正在寻找如何在不重新启动服务器的情况下更改日志记录级别。我找到了使用弹簧靴执行器的解决方案。这个解决方案非常好。

但我真正的疑问是:如果我们忘记重新更改回与以前相同的日志记录级别怎么办?

例如:我已将某些软件包的日志记录级别从 ERROR 更改为 DEBUGcom.demo" 使用 Actuator,但我忘记再次恢复它,这意味着对于包 com.demo,日志级别 永远保持为 DEBUG,除非服务重新启动。这在生产环境中实际上不是问题吗? (我的意思是这会影响性能,对吗?)那么,有什么解决方案可以解决这个问题吗?

【问题讨论】:

  • 为什么你会在生产中运行一些东西作为调试?调试是为了在测试环境中进行测试。
  • @ThomasAndolf 那么,我们应该只为测试环境添加执行器依赖吗?
  • @ThomasAndolf 我正在使用 Maven,是否需要在 pom.xml 文件中的 下添加执行器依赖项?
  • 不推荐,但如果您需要有关无法在其他地方重现的问题的更多信息,有时需要。此外,您不想/不需要在生产中记录端点这一事实并不意味着您需要放弃执行器功能的所有内容。指标、健康状况等仍然有用,尤其是在生产环境中。
  • 执行器与调试无关。执行器用于监视应用程序的状态和一般统计信息(保持灯亮) 我从来没有提到关于执行器的任何事情,我说的是调试。设置要调试的东西比启用日志记录要多得多。它通常会在整个应用程序中产生更多开销,因为应用程序无法根据需要进行优化。如果您无法从生产中复制某些东西,那么您应该解决您无法复制它的原因,而不是增加您显然已经拥有的更多不良做法和技术债务

标签: java spring spring-boot spring-boot-actuator


【解决方案1】:

<Profiles> <Profile>Testing environment</Profile> <Profile>production environment</Profile> </Profiles> 我认为您可以在 pom.xml 文件的测试环境下添加执行器依赖项。

【讨论】:

  • 不要,请不要。不要仅仅因为您在不同的环境中需要它而重建工件。只需禁用生产中不需要的端点。 Actuator 不仅仅是 enable.disable 日志记录,它还提供指标、健康等生产功能。
猜你喜欢
  • 1970-01-01
  • 2022-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多