我使用log4j来记录数据。我使用<dir_name>/$${date:yyyy-MM}/<app_name>-%d{yyyy-MM-dd}-%i.log.gz
这样的表达式指定zip文件。这基本上可以按预期工作,只是我得到了<app_name>-2022-01-20-1.log.gz
这样的文件名,而我希望在1之前有一个前导零。我相当确定日志文件的数量将是2位数,在跨多个文件进行grep时,有一个前导零有助于使事情井然有序。并基于同样的原因改进了其他sysadmin/调试。
我尝试使用<dir_name>/$${date:yyyy-MM}/<app_name>-%d{yyyy-MM-dd}-%ii.log.gz
,但它没有工作,并不是我真的希望它。
我找不到任何文档说明%i的哪个变体(如果有)会导致文件名中出现前导0。
任何帮助或提示,或链接到log4j文档,其中涵盖这将不胜感激。
1条答案
按热度按时间8oomwypt1#
如Log4J文档中所述,例如:
filePattern
字段的https://logging.apache.org/log4j/2.x/manual/appenders.html。DefaultRolloverStrategy
将接受与SimpleDateFormat
兼容的日期/时间模式和/或表示整数计数器的%i
。整数计数器允许指定填充,如%3i
,用于将计数器的空格填充到3位数,或(通常更有用)%03i
,用于将计数器的零填充到3位数。因此,为了用两位数对文件计数器进行零填充,可以使用
%02i
。