Spring 访问日志按天轮换

Spring Access Log rotation by day

我将嵌入式 Jetty 服务器用于 spring 应用程序。我尝试将访问日志配置为每天一个日志文件,但所有访问日志都添加到一个文件中。

在我的应用程序属性文件中:

server.jetty.accesslog.enabled=true
server.jetty.accesslog.append=true
server.jetty.accesslog.filename=/var/logs/access.log
server.jetty.accesslog.file-date-format=.yyyy-MM-dd
server.jetty.accesslog.retention-period=366

该配置来自 Jetty 中一个旧的、现已弃用的请求日志机制。

对于这个旧配置,您必须使用 yyyy_MM_dd 表示法。

换句话说...

# This MUST contain `yyyy_MM_dd`
server.jetty.accesslog.filename=/var/logs/access_yyyy_MM_dd.log
# This MUST be `yyyy_MM_dd` (no other option is supported)
server.jetty.accesslog.file-date-format=yyyy_MM_dd

Jetty 已移至 CustomRequestLog which formats the log output, and using an implementation of RequestLog.Writer 以确定此格式化日志的写入位置。

最常见的 RequestLog.Writer 选择是 Slf4jRequestLogWriter,它将格式化的日志写入命名的 slf4j-api 位置,这允许您使用您选择的日志记录实现(logback,java.util.logging、commons-logging、log4j1、log4j2 等)来配置和指定日志记录实现中的滚动(例如:按大小、时间、其他事件等)。

RequestLog.Writer 的唯一其他实现是 AsyncRequestLogWriter,它具有与上述相同的文件名和 fileDateFormat 规则。

查看 spring + CustomRequestLog 上的过去答案: