log4j2 TimeBasedTriggeringPolicy仅在更新日志后发生?

时间:2018-02-20 04:57:24

标签: java spring-boot logging log4j log4j2

我正在使用log4j2 yaml配置在我的应用程序中写日志是我的yaml配置文件

  Configutation:
  name: Default
  Properties:
    Property:
      - name: application-log
        value: logs/      
      - name: archive
        value: ${application-log}/archive
  Appenders:
    File:
      name: FileAppender
      fileName: ${application-log}/application.log
      PatternLayout:
        pattern: "%d{dd-MM-yyyy HH:mm:ss.SSS} [%t] [%level] [%logger{36}] - %msg%n"
    RollingFile:
      - name: transaction_file_appender
        fileName: ${application-log}/transaction.log
        filePattern: ${archive}/transaction_%d{yyyy-MM-dd-HH-mm}-%i.log.gz
        PatternLayout:
          pattern: "%msg%n"
        Policies:
          SizeBasedTriggeringPolicy:
            size: 5 KB
          TimeBasedTriggeringPolicy:
            interval: 1
        DefaultRollOverStrategy:
          max: 30
      - name: backend_file_appender
        fileName: ${application-log}/backend.log
        filePattern: ${archive}/backend_%d{yyyy-MM-dd-HH-mm}-%i.log.gz
        PatternLayout:
          pattern: "%msg%n"
        Policies:
          SizeBasedTriggeringPolicy:
            size: 5 KB
        DefaultRollOverStrategy:  
          max: 10
  Loggers:
      Root:
        level: info
        AppenderRef:
          - ref: FileAppender
      Logger:
        -
          name: transaction_logger
          level: debug
          additivity: 'false'
          appender-ref:
            level: debug
            ref: transaction_file_appender
        -
          name: backend_logger
          level: debug
          additivity: 'false'
          appender-ref:
            level: debug
            ref: backend_file_appender

在这个配置中,我为事务和后端创建了2个滚动文件追加器。并添加了SizeBasedTriggeringPolicy和TimeBasedTriggeringPolicy。 SizeBasedTriggeringPolicy按预期工作但在指定时间后,TimeBasedTriggeringPolicy不会旋转文件。 根据提到的文件HERE

应根据日期模式中最具体的时间单位进行翻转。例如,使用以小时为最特定项目的日期模式,并且每4小时将增加4次翻转。默认值为1。

在我的情况下,我给出了文件模式%d {yyyy-MM-dd-HH-mm},这意味着它应该每分钟旋转一次。但是如果系统处于空闲状态,它不会每分钟旋转(我的意思是没有写入日志)它只在某些事件发生时才会旋转。这是否意味着TimeBasedTriggeringPolicy仅在更新日志后发生? 无论日志/事件是否发生,我都希望每分钟/小时旋转一次? CronTriggeringPolicy在没有事件的情况下旋转吗?

0 个答案:

没有答案