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

Hai*_*ang 5 apache-camel apache-camel-k

更新

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

# go to directory
cd /tmp
Run Code Online (Sandbox Code Playgroud)

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

原始问题

我有一个与 kamel 一起运行的集成 Pod:

kamel run MyRoute.java
Run Code Online (Sandbox Code Playgroud)

我已登录路线

from("...")
.log("my log message")
Run Code Online (Sandbox Code Playgroud)

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

kubectl logs my-route-85d7f65c96-rmb4z --tail=10
Run Code Online (Sandbox Code Playgroud)

然后我就可以使用以下命令访问 pod:

kubectl exec -it -c integration my-route-85d7f65c96-rmb4z /bin/sh
Run Code Online (Sandbox Code Playgroud)

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

我对此有两个问题:

  • 集成容器中的日志文件位置在哪里?
  • 如何指定日志文件位置?

谢谢

Nic*_*aro 2

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

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

例如创建一个logging.properties包含以下内容的文件:

quarkus.log.file.enable=true
quarkus.log.file.path=/tmp/camel.log
quarkus.log.file.level=INFO
Run Code Online (Sandbox Code Playgroud)

然后运行集成:

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

Run Code Online (Sandbox Code Playgroud)

camel.log您将在下面找到一个/tmp包含信息日志的文件。您可以在这里找到更多示例: https: //quarkus.io/guides/logging

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