如何将 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] 消息
【讨论】:
这与我想要的很接近,但这给了我像plug
和 kaffe
这样的应用名称,而不是我的伞形应用名称。以上是关于如何将 Elixir 的伞式应用程序名称放入记录器元数据中?的主要内容,如果未能解决你的问题,请参考以下文章
Elixir Redix 基于名称的池示例 - 主管签名不存在
Elixir - 从命令行运行时记录器输出是彩色的,从 iex 运行时不是这样