首页 > 解决方案 > Cloud Foundry - log4j2 - 在日志中合并应用程序 URI

问题描述

我们正在 Cloud Foundry 中登录到 splunk(通过 logreggator)。我们通过 slf4j 使用 log4j2。

我们已经在 log4j2 配置中指定了实例 UID 和索引:

<Console ...>
  ...
  <KeyValuePair key="@instanceGUID" value="${env:CF_INSTANCE_GUID:-unknown}" />
  ...
</Console>

有没有办法为空间/路线/池做类似的事情?理想情况下,我们希望能够将 @space 包含在 dev、qa、uat 等值中,以及 pool: emea1、gb2 等值中。

在最基本的情况下,在日志中捕获路线就足够了。

任何指针表示赞赏。

标签: javalog4j2cloud-foundry

解决方案


您可以从中提取空间名称VCAP_APPLICATION。例如:echo $VCAP_APPLICATION | jq .space_name

您也可以获取 URI/Routes,但可能有多个,所以我不确定您要记录的确切内容。例如:echo $VCAP_APPLICATION | jq '.uris | first'会给你第一个。如果您不将多个路由绑定到您的应用程序,也许这已经足够了......

不知道你说的池子是什么意思。如果您指的是细胞,我不知道有什么方法可以做到这一点。您可以做的最好的事情是 Cell 的 IP,即CF_INSTANCE_IP.

您也可以随时添加自己的环境变量,以将更多信息合并到您的日志中。

希望有帮助!


推荐阅读