在Elixir伞应用程序中,应该将logger后端应用程序添加为依赖项?

Ahm*_*ous 8 erlang elixir phoenix-framework

我有一个Elixir伞形应用程序.伞下的应用程序使用Logger.我想为应用程序添加后端(logger_logstash_backend):logger.所以,我需要deps在混合文件中添加它作为函数的依赖项.

在伞形应用程序的最外层混合文件中,deps功能状态的文档:

此处列出的依赖项仅适用于此项目,无法从apps文件夹中的应用程序访问

这意味着我必须将后端模块添加为伞下每个应用程序的依赖项.但是,这样做会导致几个问题:

  1. 稍后将单个应用程序移出单独的库变得更加困难.

  2. 保护伞下的各个应用程序实际上并不依赖于自定义:logger后端模块.他们没有默认的:console后端.但我想只为prod环境增加一个后端.因此,更多的是跨应用程序问题,我不得不单独为每个应用程序添加依赖项.

你知道更好的策略吗?它是什么?

Jus*_*ood 0

只需将依赖项包含在最外层的应用程序中即可。然后,您可以配置每个应用程序以使用新的日志记录后端。