我正在使用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在没有事件的情况下旋转吗?