我使用logback将日志保存到文件中。
但是,如果我登录到Pod并查看日志文件,则带有logback的日志写得很好,但是我找不到带有sysout的日志。
kubectl exec -it pod-name bash
此外,如果我检查kubernetes pod日志,则看不到logback中写的日志,但是我只能查看sysout中写的日志。
kubectl logs -f pod-name
此外,在功能上同时使用logback和sysout时,使用logback找不到任何日志。
您知道如何解决吗?
答案 0 :(得分:1)
kubectl logs -f <pod_name>
将仅显示影响POD的操作,而不显示容器内部实际发生的操作(任何计算,输入到文件的数据)。
没有功能很难说会发生什么,但是将日志保留在POD中并不是最好的主意。如果POD发生故障,它将崩溃或发生任何错误,Kubernetes将重新启动它,所有数据将丢失。
正确的方法是将应用程序日志记录到stdout,然后使用外部工具捕获该事件并将其写入文件。 Fluentd通常用于此目的,并且具有聚合功能,即ElasticSearch。