Wie kann ich konfigurieren logback bedingt auf den Kontext-Namen?
Habe ich drei separate Projekte, die jeweils mit Ihren eigenen embedded logback.xml -Dateien. Jede dieser Dateien enthält ein common logging config-Datei im user-home-durectory:
<include file="${user_home}/loggingConfig.xml"/>
Nach dem include habe ich diese Angabe:
<root level="error">
<appender-ref ref="${appender:-console}" />
</root>
Dies ermöglicht dem Benutzer so konfigurieren Sie Ihre log-Stufen und appenders, und haben Sie angewendet, indem der Kern-logging config-Datei.
Beispielsweise in ~/loggingConfig.xml ich habe diese Zeile:
<property name="appender" value="file" />
Aber Kollegen, die lieber Konsole Protokollierung lassen Sie diese Zeile aus.
Das problem ist, ich möchte mit verschiedenen appenders für jede log-Datei. In otherwords, ich möchte um bedingt eine andere appender basiert auf dem Projekt ist, Lesen Sie die angepasste config Datei.
Ich merke, ich könnte konfigurieren, jedes Projekt Lesen anders benannte config-Dateien, aber ich würde gerne beseitigen Sie die Unordnung und damit für die freigegebene Konfiguration als gut.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Dokumentation ist ein bisschen Ersatz für die erweiterte Konfiguration, aber ich fand, dass Sie können verwenden Sie die logback Zusammenhang Namen wie eine variable mit bedingten Protokollierung. Also für jedes Projekt, das ich definieren Sie einen benutzerdefinierten Namen Kontext in den Projekten logback.xml Datei:
etc...
Dann in meine ~/loggingConfig.xml Datei kann ich dies tun:
Dies kann ein bisschen klobig, aber in Wirklichkeit bin ich mit dieser Lösung konfigurieren von Eigenschaften verwendet, die von einem einzigen appender für verschiedene Projekte, während immer noch eine graceful fallback auf einen Standardwert für Projekte, die nicht über Ihren eigenen bedingten block.
In diesem Fall hilft jemand anderes, das ist, wie ich bedingten logback-Konfiguration mit einer Eigenschaft, die enthalten kann, die mehrere appenders: