Ich habe eine Elixir-Regenschirm-Anwendung. Die Anwendungen unter dem Regenschirm verwenden Logger. Ich möchte ein Backend (logger_logstash_backend) für :logger
Anwendung hinzufügen. Also, ich muss hinzufügen, dass als Abhängigkeit in deps
Funktion in der Mischdatei.In Elixir Regenschirm App, wo sollte Logger Backend App als eine Abhängigkeit hinzugefügt werden?
In der äußersten Mix-Datei des Dach Anwendung, die Dokumentation der deps
Funktion heißt es:
zugegriffen werdenAbhängigkeiten hier sind nur für dieses Projekt verfügbar aufgeführt und von Anwendungen innerhalb des Apps-Ordner
nicht
Das bedeutet, ich muss das Back-End-Modul als eine Abhängigkeit für jede der Anwendungen unter dem Dach hinzufügen. Dies verursacht jedoch mehrere Probleme:
Es wird schwieriger, die einzelnen Anwendungen später als separate Bibliotheken zu verschieben.
Die einzelnen Anwendungen unter dem Dach sind nicht tatsächlich abhängig von der benutzerdefinierten
:logger
Backend-Modul. Sie sind in Ordnung mit Standard:console
Backend. Aber ich möchte ein zusätzliches Backend nur für prod-Umgebung haben. Aus diesem Grund ist es eher eine anwendungsübergreifende Angelegenheit, bei der ich gezwungen bin, die Abhängigkeit jeder Anwendung einzeln hinzuzufügen.
Kennen Sie eine bessere Strategie? Was ist es?
"konfigurieren Sie jede der Anwendungen, um das neue Logging-Backend zu verwenden" <- es hat die gleichen 2 Probleme, die ich in der Frage erwähnt habe. –