4

更新

# 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,不幸的是没有相关的日志文件。

我对此有两个问题:

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

谢谢

4

2 回答 2

3

Camel K 集成与任何 Camel Quarkus 应用程序一样工作,因此,我们必须提供Camel Quarkus 所期望的正确设置

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

默认设置是让日志输出到标准输出流。您可以配置添加所需的所有属性。某些配置也存在于logging trait 中

于 2021-11-22T09:02:13.823 回答
2

默认情况下,集成只记录到标准输出,以便 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

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

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

于 2021-11-22T08:59:53.177 回答