Spring应用嵌入式Jetty访问日志按天轮转配置失效问题
嵌入式Jetty访问日志按天滚动配置修复方案
问题根因
你配置的server.jetty.accesslog.file-date-format参数仅用于定义日期格式,不会自动追加到你指定的固定文件名后缀,必须在filename属性中声明日期占位符,才会触发按时间滚动生成独立文件的逻辑。
正确配置
server.jetty.accesslog.enabled=true server.jetty.accesslog.append=true # 文件名中加入日期占位符,自动按指定格式拼接日期生成独立文件 server.jetty.accesslog.filename=/var/logs/access.log.%d{yyyy-MM-dd} server.jetty.accesslog.retention-period=366
如果需要保留你单独配置file-date-format的写法,也可以调整为如下格式,效果完全一致:
server.jetty.accesslog.enabled=true server.jetty.accesslog.append=true server.jetty.accesslog.filename=/var/logs/access.log.%d server.jetty.accesslog.file-date-format=yyyy-MM-dd server.jetty.accesslog.retention-period=366
注意事项
- 确保
/var/logs/目录实际存在,且运行Spring Boot应用的系统用户对该目录拥有读写权限,权限不足时会默认写单个固定文件,甚至出现日志丢失的问题。 - 若你使用的是Spring Boot 1.x版本,配置前缀需要调整为
server.jetty.access-log(单词间为横杠而非驼峰),所有对应属性名同步调整即可。 - 测试配置是否生效时,可以临时将日期格式改为
yyyy-MM-dd-HH-mm,验证按分钟滚动生成文件的逻辑正常后,再改回按天生成的格式。
内容的提问来源于stack exchange,提问作者efp.mbr
相关产品推荐
相关产品推荐

