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