Logback 具有扫描 logback.xml 中更改的功能(根据 this ) - 这是一个很棒的功能,它允许长时间运行的应用程序附带 INFO 作为默认级别,当必须简要调查某些内容时将其更改为 DEBUG。
但是在我最近的应用程序(作为 Docker 容器托管在我公司的 K8s 集群上)中,我无法使用上述功能,因为:
鉴于此,有没有一种方法可以让开发人员在运行时更改我的应用程序的日志记录级别而无需重新启动应用程序/容器?
最佳答案
我不确定你是否也被禁止将 configmap 挂载到容器中,因为你没有提到它。
但是如果你不是,你可以创建一个 configmap:
apiVersion: v1
kind: ConfigMap
metadata:
name: logback-conf
data:
logback.xml: |
<configuration>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
并将其添加到容器中,如下所示:
containers:
- name: app
volumeMounts:
- name: config
# The conf will be mounted at /app/logback.xml
mountPath: /app
...
volumes:
- name: config
configMap:
name: logback-conf
如果您甚至不允许注入(inject) configmap(据我所知,这不会导致停机),那么您真的无能为力
关于logging - 在 Docker 应用程序中使用 Logback 更改动态日志级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61566489/