Logback nicht finden konnten, eine externe property-Datei Ressource
Ich bin mit logback version 1.0.13.
Zu Lesen, externen property-Ressource von logback verwendet habe ich einen JNDI-Eintrag (definiert im Tomcat Context) :
...
<insertFromJNDI env-entry-name="java:comp/env/app.config.path" as="app.config.path" />
<property resource="${app.config.path}" />
....
Problem : logback nicht finden meine JNDI-Ressource : ${app.config.path}= " file:///D:/temp/Anwendung.Eigenschaften
ERROR in ch.qos.logback.core.joran.action.PropertyAction - Could not find resource [file:///D:/temp/application.properties]
nicht mit anderen URLs wie : file://D:/, file:/D:/, file:////D:/,...
Irgendwelche Vorschläge?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als Bidit Kumar wies darauf hin, Datei-Ansatz funktioniert auch. In meinem Fall hatte ich ein ähnliches problem und meine Lösung ist wie folgt (ich habe Lösung 2)
Lösung:
<property
file="C:\myproject\src\main\resources\com\mycompany\app.properties"/>
<property resource="\com\mycompany\app.properties"/>
Das Set-up:
Sprache: Java
Anwendung: Spring-Boot-App
Projekt: Maven
Anmeldung: Logback
Container: (Jetty für die Entwicklung | Tomcat für die Produktion)
Die Situation:
In unserem Projekt haben wir logback.xml an der Wurzel der Ressourcen. Diese Datei muss für den Zugriff auf spezielle Eigenschaften der Anwendung. Im Beispiel unten wird die Eigenschaft, die wir brauchen, um Zugang
logging.home.dir
die gespeichert werden, alsLOGGER_HOME
.Beispiel: logback.xml
Das Problem:
Normalerweise für die Entwicklung kann man mit dem Standard-application-property-Datei
application.properties
zu halten alle erforderlichen Eigenschaften, aber für die Produktion dieser Datei ist ausgelagert.Entwicklung
application.proerties
Datei ist auf den Klassenpfad auf Sie verwiesen werden kann innerhalb logback.xml mit<property resource="application.properties" />
Produktion
Die Lösung:
Ermöglichen logback für die Nutzung des externen property-Datei, müssen Sie Folgendes tun:
Schritt 1: Beim starten der Anwendung, müssen Sie ein VM-option, die angibt, wo die zum laden der externen property-Datei:
-Dmy.wonderful.app.external.properties.file=/opt/production/tc8-java8/my_wonderfull_app/application-prod.properties
Schritt 2: In der logback-Datei können Sie nun mit
<property file="${my.wonderful.app.external.properties.file}" /> <!-- note this MUST match the VM option name -->
<property name="LOGGER_HOME" value="${logging.home.dir}" /> <!-- property key from the file -->
Kurze Antwort:
Anwendung VM-option
-D
my.wonderful.app.external.properties.file
=/opt/Produktion/tc8-java8/my_wonderfull_app/Anwendung-prod.EigenschaftenLogback.xml
< property file="${
my.wonderful.app.external.properties.file
}" />Versuchen Sie es mit Datei="${app.config.path}" anstelle von resource="${app.config.path}"
und ${app.config.path}= " D:/...
Überprüfen logback Dokumentation für weitere details: http://logback.qos.ch/manual/configuration.html
Rodrigo
Dies ist meine config.Eigenschaften Datei:
Und meine logback.xml Datei: