2012-03-28 3 views
1

Ich möchte wie etwas tun:Logback: Mehrere Property Quellen

<insertFromJNDI env-entry-name="java:comp/env/conf/app-log-path" as="logPath" /> 
<if test='!isDefined("logPath") &amp;&amp; isDefined("catalina.home")'> 
    <then> 
    <property name="logPath" value="${catalina.home}/logs/" /> 
    </then> 
</if> 
<appender name="ROLLING_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>${logPath:-logs/}myapp.log</file> 
</appender> 

das heißt, erlauben eine JNDI Eigenschaft in meiner Protokollkonfiguration gesendet werden, und wenn das nicht gefunden wird, dann versuchen catalina.home mit Wenn dies nicht gefunden wird, verwenden Sie einen Standardwert. Ist das möglich? Es scheint mir so zu sein, aber das scheint nie zu wirken, vielleicht können Eigenschaften auf diese Weise nicht aktualisiert werden? Die Dokumentation (Kapitel 3 des Handbuchs) lässt die Eigenschaftsersatzung ziemlich mächtig erscheinen, aber ich kann einfach nicht scheinen, dass sie richtig funktioniert.

Antwort

0

Ich glaube, ich habe eine alte oder falsche Demo bekommen. Unmittelbar nachdem ich dies gepostet habe, habe ich festgestellt, dass das Attribut condition = "" anstelle von test = "" ist.

+0

Also, mit 'condition' funktioniert es? – madth3

+0

Ja, ich bin mir nicht sicher, woher ich das Attribut @test bekommen habe, aber als ich nochmal auf ein anderes Beispiel (zum 3. Mal) zurückgekommen bin, habe ich endlich den Unterschied bemerkt. Ich brauchte die Janio Lib, aber das hatte ich schon. Im Allgemeinen sind die Logback-Dokumente ziemlich nett, aber einige der fortgeschritteneren Sachen könnten ein paar mehr "Schritt für Schritt" -Stil-Anleitungen verwenden. – Robert