2016-03-24 19 views
0

Logforum için logback ile slf4j kullandığım bir proje üzerinde çalışıyorum. Şey, günlüklerin seviyesi dinamiktir ve kullanıcı tarafından seçilir. Böylece, kullanıcı aynı zamanda günlüğe kaydetmeyi durdurabiliyor, böylece uzayda kazanabiliyor (pek çok şeyi günlüğe kaydediyoruz ve büyük bir trafik varsa çok hızlı bir şekilde maliyetli olabiliriz).logback: level OFF, kayıttan gösterimde çalışmıyor

Bunu yapmak için, özellik dosyasında bazı değişkenleri kaydediyorum ve her değiştiğinde yeniden yüklüyorum. Ama the doc dediği gibi (logları devre dışı bırakmak için) kapalı seviyeyle çalışmasını sağlamayı başaramadım. İşte

benim logback.xml var:

<?xml version="1.0" encoding="UTF-8"?> 

<configuration scan="false"> 
<!-- We don't need the logback.xml to be checked every time, we will trigger in java 
the reload if we need it --> 

    <property file="/opt/program/log.properties"/> 

    <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"> 
     <resetJUL>true</resetJUL> 
    </contextListener> 

    <!-- To enable JMX Management --> 
    <jmxConfigurator/> 

    <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder> 
      <pattern>${PATTERN_LOGS}</pattern> 
     </encoder> 
    </appender> 

    <appender name="generalFile" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <file>${LOG_GENERAL_PATH}.log</file> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <fileNamePattern>${LOG_GENERAL_FILENAME}.%d{yyyy-MM-dd}.log</fileNamePattern> 
      <MaxHistory>30</MaxHistory> 
      </rollingPolicy> 
     <encoder> 
      <pattern>${PATTERN_LOGS}</pattern> 
     </encoder> 
     </appender> 

     <appender name="httpFile" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <file>${LOG_HTTP_PATH}.log</file> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <fileNamePattern>${LOG_HTTP_FILENAME}.%d{yyyy-MM-dd}.log</fileNamePattern> 
      <MaxHistory>30</MaxHistory> 
      </rollingPolicy> 
     <encoder> 
      <pattern>${PATTERN_LOGS}</pattern> 
     </encoder> 
     </appender> 

     <appender name="errorFile" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <file>${LOG_ERROR_PATH}.log</file> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <fileNamePattern>${LOG_ERROR_FILENAME}.%d{yyyy-MM-dd}.log</fileNamePattern> 
      <MaxHistory>30</MaxHistory> 
      </rollingPolicy> 
     <encoder> 
      <pattern>${PATTERN_LOGS}</pattern> 
     </encoder> 
     <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> 
      <level>ERROR</level> 
     </filter> 
     </appender> 

    <logger name="http" level="DEBUG" additivity="false"> 
     <appender-ref ref="httpFile"/> 
     <appender-ref ref="generalFile"/> 
     <appender-ref ref="console"/> 
    </logger> 

    <root level="${LEVEL_ROOT}"> 
     <appender-ref ref="console"/> 
     <appender-ref ref="generalFile"/> 
     <appender-ref ref="errorFile"/> 
    </root> 
</configuration> 

Ve durum mesajını etkinleştirmek zaman bu ben konsoldan ne var: Sağladığınız logback durum mesajları itibaren

00:06:45,861 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy] 
00:06:45,861 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml] 
00:06:45,862 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/root/Documents/project/projet%20OSM/Tomcat%20Installation/wtpwebapps/SekaiServer/WEB-INF/classes/logback.xml] 
00:06:45,944 |-INFO in ch.qos.logback.classic.joran.action.LoggerContextListenerAction - Adding LoggerContextListener of type [ch.qos.logback.classic.jul.LevelChangePropagator] to the object stack 
00:06:45,961 |-INFO in [email protected] - Propagating DEBUG level on Logger[ROOT] onto the JUL framework 
00:06:45,962 |-INFO in ch.qos.logback.classic.joran.action.LoggerContextListenerAction - Starting LoggerContextListener 
00:06:45,962 |-INFO in ch.qos.logback.classic.joran.action.JMXConfiguratorAction - begin 
00:06:45,968 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender] 
00:06:45,975 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [console] 
00:06:45,993 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property 
00:06:46,091 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender] 
00:06:46,100 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [generalFile] 
00:06:46,143 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy - No compression will be used 
00:06:46,148 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy - Will use the pattern /opt/program/log/general.%d{yyyy-MM-dd}.log for the active file 
00:06:46,155 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - The date pattern is 'yyyy-MM-dd' from file name pattern '/opt/program/log/general.%d{yyyy-MM-dd}.log'. 
00:06:46,155 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - Roll-over at midnight. 
00:06:46,156 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - Setting initial period to Sat Mar 26 00:03:15 CET 2016 
00:06:46,159 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property 
00:06:46,165 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[generalFile] - Active log file name: /opt/program//log/general.log 
00:06:46,165 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[generalFile] - File property is set to [/opt/program//log/general.log] 
00:06:46,167 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender] 
00:06:46,168 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [httpFile] 
00:06:46,170 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy - No compression will be used 
00:06:46,170 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy - Will use the pattern /opt/program/log/http.%d{yyyy-MM-dd}.log for the active file 
00:06:46,171 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - The date pattern is 'yyyy-MM-dd' from file name pattern '/opt/program/log/http.%d{yyyy-MM-dd}.log'. 
00:06:46,171 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - Roll-over at midnight. 
00:06:46,172 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - Setting initial period to Sat Mar 26 00:03:15 CET 2016 
00:06:46,172 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property 
00:06:46,174 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[httpFile] - Active log file name: /opt/program//log/http.log 
00:06:46,174 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[httpFile] - File property is set to [/opt/program//log/http.log] 
00:06:46,174 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender] 
00:06:46,175 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [errorFile] 
00:06:46,177 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy - No compression will be used 
00:06:46,177 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy - Will use the pattern /opt/program/log/error.%d{yyyy-MM-dd}.log for the active file 
00:06:46,178 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - The date pattern is 'yyyy-MM-dd' from file name pattern '/opt/program/log/error.%d{yyyy-MM-dd}.log'. 
00:06:46,178 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - Roll-over at midnight. 
00:06:46,178 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - Setting initial period to Thu Mar 24 19:50:38 CET 2016 
00:06:46,179 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property 
00:06:46,190 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[errorFile] - Active log file name: /opt/program//log/error.log 
00:06:46,190 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[errorFile] - File property is set to [/opt/program//log/error.log] 
00:06:46,192 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [http] to DEBUG 
00:06:46,192 |-INFO in [email protected] - Propagating DEBUG level on Logger[http] onto the JUL framework 
00:06:46,192 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting additivity of logger [http] to false 
00:06:46,192 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [httpFile] to Logger[http] 
00:06:46,194 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [generalFile] to Logger[http] 
00:06:46,194 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [console] to Logger[http] 
00:06:46,194 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to OFF 
00:06:46,194 |-INFO in [email protected] - Propagating OFF level on Logger[ROOT] onto the JUL framework 
00:06:46,194 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [console] to Logger[ROOT] 
00:06:46,194 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [generalFile] to Logger[ROOT] 
00:06:46,194 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [errorFile] to Logger[ROOT] 
00:06:46,195 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration. 
00:06:46,195 |-INFO in [email protected] - Registering current configuration as safe fallback point 
+0

Durum mesajları ne diyor? Http://logback.qos.ch/manual/configuration.html#statusListener ayrıntılarına bakın. – Ceki

+0

Sorularıma yardım etmem için bir rahatlama. – rsabir

cevap

1

, kök kaydedicisi Beklendiği gibi OFF seviyesine ayarlanır. Ancak, "http" adlı logger, sorunun kaynağı olduğundan şüphelendiğim DEBUG olarak ayarlandı.

Her durumda, farklı ekleyicilerden aynı ekleyiciye başvurmak kötü bir fikirdir. Ayrıca, yapılandırma dosyası iki kez yapar, ekleyiciler 'generalFile' ve 'errorFile' olarak adlandırılır. Yine, aynı ekleyiciye farklı kaydedicilere başvurmak kötü bir fikirdir ve desteklenmez.

+0

numaralı sorudaki günlükleri ekledim. Çalıştığınız için teşekkür ederim. Şimdi bir sorunum var çünkü "generalFIle" ve "konsol" logger http’dan kaldırdığımda, "generalFile" ve "console" içinde "http" günlüklerini kaybediyorum. – rsabir

+1

http adlı günlük kaydında, true değerine ek doğrulık ayarlayın veya yalnızca ekleme özniteliğini kaldırın ve varsayılan olarak doğru olacaktır. – Ceki

+0

Teşekkür ederim, katkıdan önce anlamadım. Teşekkürler – rsabir

İlgili konular