2017-10-04 1 views
0

다음은 SpringBoot 로그 용 코드입니다. 파일 크기가 아무리 커지더라도 매일 파일을 생성한다고 가정합니다. 그러나 때때로 로그 파일이 생성되지 않고 때로는 파일에 다른 요일 로그가 포함됩니다. 어떻게 해결할 수 있습니까? 파일 크기가 충분하지 않아 로그를 생성 할 수 없기 때문입니까?스프링 부트 로그

도와주세요!

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

    <property name="DEV_HOME" value="./logs" /> 

    <appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender"> 
     <syslogHost>10.0.3.20</syslogHost> 
     <facility>SYSLOG</facility> 
     <suffixPattern>abc [%thread] %logger %msg</suffixPattern> 
    </appender> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <layout class="ch.qos.logback.classic.PatternLayout"> 
      <Pattern> 
       %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n 
      </Pattern> 
     </layout> 
    </appender> 

    <appender name="FILE-AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <file>${DEV_HOME}/abc.log</file> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <!-- daily rollover --> 
      <fileNamePattern>${DEV_HOME}/abc.%d{yyyy-MM-dd}.log</fileNamePattern> 
     </rollingPolicy> 
     <encoder> 
      <pattern>%relative [%thread] %-5level %logger{35} - %msg%n</pattern> 
     </encoder> 
    </appender> 

    <logger name="com.rh.abc" level="debug"> 
     <appender-ref ref="STDOUT" /> 
     <appender-ref ref="SYSLOG" /> 
     <appender-ref ref="FILE-AUDIT" /> 
    </logger> 

</configuration> 

답변

0

희망이 당신의 다양한 기술적 인 이유로

에게 도움이 롤오버는 시계 구동되지 않지만 로깅 이벤트의 도착에 따라 달라집니다. 예를 들어, 2002 년 3 월 8 일에 fileNamePattern이 yyyy-MM-dd (일일 롤오버)로 설정된 경우 자정 이후에 첫 번째 이벤트가 도착하면 롤오버가 트리거됩니다. 자정 이후 23 분 47 초 동안 로깅 이벤트가없는 경우 롤오버는 실제로 3 월 9 일 00 : 23'47 AM에 발생하고 0:00 AM에는 발생하지 않습니다. 따라서 이벤트 도착률에 따라 약간의 대기 시간으로 롤오버가 트리거 될 수 있습니다. 그러나 지연에 관계없이 롤오버 알고리즘은 일정한 기간 동안 생성 된 모든 로깅 이벤트가 해당 기간을 구분하는 올바른 파일에 출력된다는 점에서 올바른 것으로 알려져 있습니다.

자세한 내용은 docs을 확인하십시오.

관련 문제