在所需时间未滚动(Log4j2)

neskvpey  于 2024-01-08  发布在  其他
关注(0)|答案(1)|浏览(186)

**我希望我的solr-indexer日志在每天上午12点UTC滚动,这意味着.gz文件应该在每天00:00:00 UTC创建,它应该包含前一天从00:00:00 UTC开始到23:59:59 UTC结束的所有日志。

例如,在11月21日00:00:00 UTC创建的日志(.gz)文件应包含11月20日的所有24小时日志。
这就是我的log4j 2 xml文件的样子:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <Configuration status="INFO" packages="com.fidelis.k2.logging.filter">
  3. <Properties>
  4. <Property name="log_path">/opt/k2/logs</Property>
  5. <Property name="log_pattern">%t - %d{yyyy-MM-dd HH:mm:ss} %-5p %c:%L - %m%n</Property>
  6. </Properties>
  7. <Appenders>
  8. <Console name="console" target="SYSTEM_OUT">
  9. <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
  10. </Console>
  11. <RollingFile name="rollingFile" fileName="${log_path}/solr_data_uploader.log"
  12. filePattern="${log_path}/solr_data_uploader-%d{yyyy-MM-dd}.log.gz">
  13. <PatternLayout>
  14. <pattern>${log_pattern}</pattern>
  15. </PatternLayout>
  16. <Policies>
  17. <TimeBasedTriggeringPolicy interval="1" modulate="false" timeUnit="days"/>
  18. </Policies>
  19. <DefaultRolloverStrategy max="15"/>
  20. </RollingFile>
  21. </Appenders>
  22. <Loggers>
  23. <Logger name="com.fidelis.k2" level="info" additivity="false">
  24. <AppenderRef ref="rollingFile"/>
  25. </Logger>
  26. <Root level="info">
  27. <AppenderRef ref="console"/>
  28. </Root>
  29. </Loggers>
  30. </Configuration>

字符串
我也试过modulate=“true”,但它没有在zip文件中显示一整天的日志。目前日志文件(出于某种未知原因)每天在06:10 UTC创建,它不包含一整天的日志。

ijxebb2r

ijxebb2r1#

滚动文件附加器使用%d{...}模式中的时区来确定一天结束的时间。日期模式的一般形式是:

  1. %d{format specifiers}{timezone}

字符串
如果缺少timezone参数,则默认为系统时区。
如果你想在UTC基础上旋转,只需更改:

  1. <RollingFile name="rollingFile"
  2. fileName="${log_path}/solr_data_uploader.log"
  3. filePattern="${log_path}/solr_data_uploader-%d{yyyy-MM-dd}.log.gz">


  1. <RollingFile name="rollingFile"
  2. fileName="${log_path}/solr_data_uploader.log"
  3. filePattern="${log_path}/solr_data_uploader-%d{yyyy-MM-dd}{UTC}.log.gz">

展开查看全部

相关问题