2017-10-04 4 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(日次ロールオーバー)に設定されていると仮定すると、午前0時以降に最初のイベントが到着するとロールオーバーがトリガーされます。真夜中から23分47秒後にロギングイベントがない場合、ロールオーバーは実際には3月9日の00:23'47 AMに発生し、0:00 AMでは発生しません。したがって、イベントの到着率に応じて、いくつかの遅延でロールオーバーが発生する可能性があります。しかし、遅延にかかわらず、一定期間に生成されたすべてのロギングイベントが、その期間を区切る正しいファイルに出力されるという意味で、ロールオーバアルゴリズムは正しいことが知られています。

詳細については、docsをご覧ください。