2016-12-15 6 views
1

Ich versuche Logger Policy in einem Frühjahrsprojekt zu erstellen.Logging Rolling Logging funktioniert nicht

Das Problem, mit dem ich konfrontiert bin, steht im Zusammenhang mit Rolling Policy. Die logfile.log ist erstellt und funktioniert gut, aber die Rolling-Datei rollingfile.log.%d{yyyy-MM-dd}.log ist nicht erstellt.

Unten angegeben ist meine logback.xml.

<?xml version="1.0" encoding="UTF-8"?> 
<configuration debug="true" scan="true" scanPeriod="30 seconds"> 
    <property name="LOG_PATH" value="D:/coinLogs" /> 
    <property name="LOG_ARCHIVE" value="${LOG_PATH}/archive" /> 

    <appender name="Console-Appender" class="ch.qos.logback.core.ConsoleAppender"> 
     <layout> 
      <pattern>[%d{yyyy-MM-dd HH:mm:ss}] - [%X{requestId}] - %p %c -- %m%n</pattern> 
     </layout> 
    </appender> 

    <appender name="File-Appender" class="ch.qos.logback.core.FileAppender"> 
     <file>${LOG_PATH}/logfile.log</file> 
     <encoder> 
      <pattern>[%d{yyyy-MM-dd HH:mm:ss}] - [%X{requestId}] - %p %c -- %m%n 
      </pattern> 
      <outputPatternAsHeader>true</outputPatternAsHeader> 
     </encoder> 

     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <!-- rollover daily --> 
      <fileNamePattern>${LOG_ARCHIVE}/rollingfile.log.%d{yyyy-MM-dd}.log 
      </fileNamePattern> 
      <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
         <maxFileSize>10MB</maxFileSize> 
      </timeBasedFileNamingAndTriggeringPolicy> 
     </rollingPolicy> 
    </appender> 


    <logger name="coinPay.logbackxml" level="info" additivity="false"> 
     <appender-ref ref="Console-Appender" /> 
     <appender-ref ref="File-Appender" /> 
    </logger> 

    <!-- To remove extra hibernate logs --> 
    <logger name="org.hibernate"> 
     <level value="info" /> 
    </logger> 

    <root> 
     <appender-ref ref="Console-Appender" /> 
     <appender-ref ref="File-Appender" /> 
    </root> 

</configuration> 

jede Hilfe wird geschätzt. Vielen Dank im Voraus: D

Antwort

2

Sie müssen ch.qos.logback.core.RollingFileAppender als Klasse für Ihren Appender angeben. Ein FileAppender kann nicht rollen.

+1

ersetzen this von diesem pringi

+0

Nach dem Versuch oben ändert sich sogar "logfile.log" funktioniert nicht. Gibt es noch etwas, was ebenfalls geändert werden muss? – abhi314

+0

Haben Sie Fehler? Vielleicht ist Ihr Protokolllevel nicht angemessen? –

1


Ich glaube, du verpasst die % i Parameter, der durch den Roll Datei-Index (dh ersetzt werden sollte 'mylog.2017-03-13. .txt', ‚mylog.2017 -03-13. .txt‘, etc.)

Zusätzlich wie Uwe Allner, ich bin mit RollingFileAppender statt FileAppender.
(Ich schlage vor, auch eine totalSizeCap zur Konfiguration hinzugefügt, um die Gesamtgröße zu steuern)

Hier Konfiguration meine ganze appender ist:

<appender name="SQL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>${LOG_HOME}/mylog.txt</file> 
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
     <Pattern> 
      %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level- %msg%n 
     </Pattern> 
    </encoder> 

    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <maxHistory>3</maxHistory> 
     <totalSizeCap>5GB</totalSizeCap> 
     <fileNamePattern>${LOG_HOME}/archived/mylog.%d{yyyy-MM-dd}.%i.txt.zip</fileNamePattern> 
     <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
      <maxFileSize>20MB</maxFileSize> 
     </timeBasedFileNamingAndTriggeringPolicy> 
    </rollingPolicy> 
</appender>