lnx*_*lnx 5 logging production-environment spring-boot kubernetes microservices
假设我有一个 Spring Boot 应用程序,我使用 Log4j 进行日志记录。在那里,我想动态更改日志级别,而无需启动整个应用程序。
这可以通过暴露一些端点来设置级别来实现。但是,在生产级别,同一应用程序的多个实例可能在不同的服务器上运行。
那么,我们如何在运行 kubernetes 管理的应用程序的所有容器实例中动态设置日志记录级别?
不确定 K8s 上的配置映射将如何解决问题。一旦应用程序启动,就会使用/读取环境变量、命令行参数和配置文件。如果不重新启动,对它们的任何更改都不会反映到应用程序。
我使用的一种解决方案是在记录器库(log4j 或 logback)上设置扫描间隔。例如,在 logback 上有一个自动扫描配置参数 https://logback.qos.ch/manual/configuration.html#autoScan。
这允许应用程序以定义的时间间隔定期检查您定义日志级别的配置文件的更改。因此,即使您使用应用程序的多个实例,所有这些实例都将扫描相同的配置文件并在不重新启动的情况下进行更新。
| 归档时间: |
|
| 查看次数: |
2793 次 |
| 最近记录: |