Camel K 集成 pod 中的日志在哪里

Where is the logs in Camel K integration pod

更新

# access to the container
kubectl exec -it -c integration my-route-80b4cb7566-v6l7m /bin/sh

# go to directory
cd /tmp

Squake 和 Nicola 的回答都正常。要检查生成的日志文件,您需要访问容器并检查正确的目录:

原题

我有一个集成舱 运行 kamel:

kamel run MyRoute.java

我已经登录了路由

from("...")
.log("my log message")

我可以使用命令检查日志行:

kubectl logs my-route-85d7f65c96-rmb4z --tail=10

然后我可以使用以下方式访问 pod:

kubectl exec -it -c integration my-route-85d7f65c96-rmb4z /bin/sh

我试图检查文件夹 /var/log,不幸的是没有相关的日志文件。

我有两个问题:

谢谢

默认情况下,集成仅将日志记录到标准输出,以便 Kubernetes 可以收集日志。

您可以使用 Quarkus 属性提供高级日志记录配置。

例如使用以下内容创建一个 logging.properties 文件:

quarkus.log.file.enable=true
quarkus.log.file.path=/tmp/camel.log
quarkus.log.file.level=INFO

然后 运行 集成:

kamel run MyRoute.java --property=file:logging.properties

您会在 /tmp 下找到一个包含 INFO 日志的 camel.log 文件。您可以在此处找到更多示例:https://quarkus.io/guides/logging.

您可以将日志写入进程具有写入权限的任何目录,如果需要,包括您拥有的 PV。

Camel K Integration 与任何 Camel Quarkus 应用程序一样工作,因此,我们必须提供正确的 settings as expected by Camel Quarkus:

kamel run Sample.java --dev -p quarkus.log.file.path=/tmp/trace.log -p quarkus.log.file.enable=true

默认是将日志输出到标准输出流。您可以配置添加所有需要的属性。 logging trait.

中也存在某些配置