2017-09-19 1 views
1

Die Frage ist einfach. In einigen logback.xmls ich Ebene als Element sehen:Logback Level Element vs. Level Attribut

<logger name="mylog" additivity="false"> 
    <level value="DEBUG" /> 
    <appender-ref ref="fileAppender" /> 
</logger> 

Aber in einigen ist es als Attribut geschrieben:

<logger name="mylog" additivity="false" level="debug"> 
    <appender-ref ref="fileAppender" /> 
</logger> 

Was ist der Unterschied?

Danke.

Antwort

1

In Bezug auf die Konfiguration Logback gibt es keinen Unterschied. Die beiden folgenden Erklärungen sind funktional identisch:

<logger name="com.x.y"> 
    <level value="DEBUG"/> 
</logger> 

<logger name="com.x.y" level="DEBUG" /> 

Logback des configurer (haben einen Blick auf ch.qos.logback.core.joran.GenericConfigurator.doConfigure()) erzeugt eine identische Logger Instanz für diese beiden Erklärungen.

Der einzige Unterschied - beim Parsen der Konfiguration - ist, dass der erste in mehr Instanzen von ch.qos.logback.core.joran.event.SaxEvent (Start- und Ende-Ereignisse für den Logger und für den Level) als der zweite (Start- und Ende-Ereignisse nur für den Logger) manifestiert).

Wenn Sie einen Logger mit einem bestimmten Appender verknüpfen, definieren Sie bereits einen Logger-Element-Körper, z.

<logger name="com.x.y"> 
    <appender-ref ref="STDOUT"/> 
</logger> 

In diesem Fall wird ein level innerhalb des Elementkörpers und nicht als ein Attribut definieren könnte besser lesen, aber es ist wirklich nur ein Fall von Entwicklern bevorzugt.

+0

Gut zu wissen, da die Dokumentation nur die zweite Möglichkeit bietet. – Xenon