【问题标题】:Spring Access Log rotation by daySpring Access 日志按天轮换
【发布时间】:2021-10-13 08:11:18
【问题描述】:

我将嵌入式 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

【问题讨论】:

    标签: spring spring-boot jetty embedded-jetty


    【解决方案1】:

    该配置来自 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,并使用 RequestLog.Writer 的实现来确定此格式化日志的写入位置。

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

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

    查看春天的过去答案 + CustomRequestLog : https://stackoverflow.com/a/66079787/775715

    【讨论】:

    • 谢谢,它有效!
    猜你喜欢
    • 1970-01-01
    • 2016-01-27
    • 2018-10-12
    • 2018-08-23
    • 1970-01-01
    • 2017-09-25
    • 2018-07-18
    • 2012-12-05
    • 2020-07-15
    相关资源
    最近更新 更多