如何控制 Jetty Runner Web 应用程序的日志轮换

How to control log rotation for Jetty Runner web apps

我正在使用 jetty-runner.jar 版本 9.4.28.v20200408。当我 运行 java jar 命令时,我得到了这个输出:

Usage: java [-Djetty.home=dir] -jar jetty-runner.jar [--help|--version] [ server opts] [[ context opts] context ...]

并且服务器选择包含此条目

 --out file                          - info/warn/debug log filename (with optional 'yyyy_mm_dd' wildcard

所以我用了这个表达

yyyy_mm_dd_${API_NAME}-${PORT}-http.log

正在使用 yyyy_mm_dd 进行日志记录,但无法自动删除旧条目。有什么方法可以控制吗?

注意:jetty-runner 已弃用并被删除。

https://github.com/eclipse/jetty.project/commit/a1b38fadb836f768af6a2cb348d1687715381b25

jetty-runner 用于快速测试您的 Web 应用程序,不推荐用于生产用途,纯粹是因为它不像您现在所经历的那样用于自定义和配置设置。

它本质上是一种硬编码配置,您可以调整的旋钮很少。

日志记录被硬编码为使用内部 Jetty StdErrLog 和 Jetty RolloverFileOutputStream。两者都不支持您正在尝试做的事情。

如果你移动到纯 embedded-jetty,在那里你可以控制事情,或者使用适当的 ${jetty.home}${jetty.base} 拆分,那么你可以指定任何你想要的基于 slf4j 的日志记录实现,以及您需要的所有自定义日志记录行为(翻转、压缩、翻转触发器、旧翻转文件行为等)。