如何将 Elixir 的伞式应用程序名称放入记录器元数据中?

Posted

技术标签:

【中文标题】如何将 Elixir 的伞式应用程序名称放入记录器元数据中?【英文标题】:How can I put Elixir's umbrella app names into the logger metadata? 【发布时间】:2018-01-25 23:35:52 【问题描述】:

Umbrella apps 是 Elixir 的一个有趣功能,但令我惊讶的是,默认情况下日志记录不会显示哪个应用程序正在生成日志消息。我想将伞形应用程序的名称添加到 Logger 元数据中,但我不确定这样做的最佳位置。每个应用程序都可以单独配置记录器,并将要显示的元数据列入白名单,但我不确定在哪里添加伞式元数据

比如apps/web/config/dev.exs我可以放

config :logger, :console,
  metadata: [:umbrella_app]

但是我找不到添加类似Logger.metadata(umbrella_app: :web) 之类的内容来填充元数据的好地方。

【问题讨论】:

【参考方案1】:

尝试将:application 添加到元数据

config :logger, :console,
  format: "$metadata[$level] $message\n",
  metadata: [:application]

这将打印这样的消息

application=app [level] 消息

【讨论】:

这与我想要的很接近,但这给了我像 plugkaffe 这样的应用名称,而不是我的伞形应用名称。

以上是关于如何将 Elixir 的伞式应用程序名称放入记录器元数据中?的主要内容,如果未能解决你的问题,请参考以下文章

Elixir Redix 基于名称的池示例 - 主管签名不存在

manjaro linux elixir 记录器崩溃

如何将 AMI 名称放入打包程序清单中

Elixir - 从命令行运行时记录器输出是彩色的,从 iex 运行时不是这样

如何将 elixir 应用程序从 Windows 开发机器部署到 Ubuntu 服务器

如何将空格字符放入 XML 中的字符串名称中?