我有以下日志方案。我想每4小时轮换一次日志。但是,当我使用这些设置启动应用程序时,不会生成./logs/mylogs.log
文件。我在应用程序的目录中创建了logs
目录。
如果我更改文件名模式以包括分钟以及-
archivedLogFilenamePattern: ./logs/mylogs-%d{yyyy-MM-dd-hh-mm}.log.gz
我很困惑为什么它不适用于小时模式?
logging:
level: WARN
appenders:
- type: console
threshold: WARN
- type: file
threshold: WARN
logFormat: "%-6level [%d{HH:mm:ss.SSS}] [%t] %logger{5} - %X{code} %msg %n"
currentLogFilename: ./logs/mylogs.log
archive: true
archivedLogFilenamePattern: ./logs/mylogs-%d{yyyy-MM-dd-hh}.log.gz
archivedFileCount: 4
使用dropwizard 1.3.7
答案 0 :(得分:1)
Dropwizard使用Logback进行日志记录。这里使用的滚动策略为TimeBasedRollingPolicy。
每小时要开始滚动的fileNamePattern:
archivedLogFilenamePattern: ./logs/mylogs-%d{yyyy-MM-dd_HH}.log.gz
不确定是否有一种方法可以每n小时进行一次转换。您可能要考虑使用dropwizard支持的FixedWindowRollingPolicy。这将允许您根据大小进行过渡。例如-
- type: file
threshold: ALL
maxFileSize: 100MB
currentLogFilename: ./logs/max-file-size-example.log
archivedLogFilenamePattern: ./logs/max-file-size-example-%i.log.gz
archivedFileCount: 5