2016-11-04 2 views
2

Ich verwende das Logback als Implementierung mit SL4j-Schnittstelle. Hier ist die KonfigurationÄnderung der Protokollstufe zur Laufzeit ohne Neustart des Servers?

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>logs/prod.log</file> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">   
     <FileNamePattern>logs/prod.%d{yyyy-MM-dd}.%i.log</FileNamePattern> 
     <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
      <maxFileSize>700MB</maxFileSize> 
     </timeBasedFileNamingAndTriggeringPolicy> 
    </rollingPolicy> 
</appender> 


    <logger name="com.ecom" additivity="false" level="ERROR"> 
     <appender-ref ref="FILE" /> 
    </logger> 

ich das Level zu Info oder Debug zur Laufzeit durch die Konfiguration oder externe Eigenschaftsänderung in der Produktion geändert werden soll, ohne den Server neu zu starten. Ist es möglich ?

FYI, ich bin mit Weblogic als Anwendungsserver und auch Spring für andere Zwecke>

+0

Aber das ist programmatic Ansatz ich bin auf der Suche nach Konfiguration/Eigenschaft Datei ändern – user3198603

+0

Mögliche Duplikat von [Log-Level in Logback zur Laufzeit über externe Eigenschaftendatei ändern] (http://stackoverflow.com/questions/30976870/change- log-level-in-logback-zur-laufzeit-über-externe-eigenschaftsdatei) – Joe

Antwort

0

Variable substitution dein Freund hier. Default values for variables sollte auch hilfreich sein.

Siehe auch variable scoping.

+0

In den Beispielen, die Sie erwähnt haben, wird die Variablenersetzung verwendet, um anzugeben, wo die Protokolldatei erstellt wird. Wie kann es verwendet werden, um die Protokollierungsstufe zur Laufzeit zu ändern? Meinst du, ich sollte eine externe Eigenschaftendatei wie ' erstellen, die eine Eigenschaft wie LOG_LEVEL = DEBUG' enthält und dann' '? ' – user3198603

+0

Die Variablensubstitution funktioniert auch für das Attribut" level ". Ich habe auch meine Antwort oben geändert. – Ceki

1

Es gibt zwei Möglichkeiten, um die Logger Ebene

  1. One bei mit Systemebene Eigenschaft heißt java -Dlogback.configurationFile=/pathToconfig.xml externalisieren. Siehe How to externalize the log level

  2. <root level="${log.level:-Error}">. Dann stellen Sie die Systemebene Eigenschaft -Dlog.level=DEBUG

Verwandte Themen