spring - Spring Boot Jetty 访问日志:记录服务器延迟时间
问题描述
我正在使用嵌入式(默认方式)码头服务器进行春季启动。我正在尝试通过以下方式配置码头服务器的访问日志
我正在使用
spring-boot-starter-jetty', version: '2.3.2.RELEASE'
和 spring boot 是相同的版本。
server.jetty.accesslog.append=false
server.jetty.accesslog.date-format=dd/MMM/yyyy:HH:mm:ss
server.jetty.accesslog.enabled=true
server.jetty.accesslog.extended-format=false
server.jetty.accesslog.file-date-format=dd/MMM/yyyy
server.jetty.accesslog.filename=/var/log/prod/access.log
server.jetty.accesslog.log-latency=true
server.jetty.accesslog.log-server=false
server.jetty.accesslog.retention-period=31
server.jetty.max-http-post-size=10MB
log-latecy
似乎既不工作也不汇总访问日志file-data-format
遵守application.properties
. 请帮忙
解决方案
从 Spring 2.4.2 开始,提供WebServerFactoryCustomizer
自定义 Jetty Servlet
https://docs.spring.io/spring-boot/docs/2.0.0.M3/reference/html/howto-embedded-web-servers.html#howto-configure -码头
以下解决方案可用于支持访问日志格式。
@Configuration
public class JettyWebServerCustomizer implements WebServerFactoryCustomizer<JettyServletWebServerFactory> {
@Override
public void customize(JettyServletWebServerFactory factory) {
factory.getConfigurations();
factory.addServerCustomizers(server -> {
if (server.getRequestLog() instanceof CustomRequestLog) {
CustomRequestLog existingRequestLog = (CustomRequestLog) server.getRequestLog();
CustomRequestLog customRequestLog = new CustomRequestLog(existingRequestLog.getWriter(), "%{client}a - %u %t \"%r\" %s %O %{ms}T");
server.setRequestLog(customRequestLog);
}
});
}
}
CustomRequestLog 还提供了另一个构造函数CustomRequestLog(String file, String format)
,可用于传递文件名以支持滚动文件附加程序。
推荐阅读
- html - 日期时间选择器位于屏幕下方
- jsf - p:datatable 性能问题 - jsf primefaces
- ios - 如何按顺序链接 RxSwift Singles
- context-free-grammar - 描述 a、ab、abc、ac 的语言的上下文无关语法...?
- eclipse-emf - EMF:在 Ecore 元模型中定义通用包含引用
- java - java.lang.IllegalAccessError:类 lombok.javac.apt.LombokProcessor 无法访问类 com.sun.tools.javac.processing.JavacProcessingEnvironment
- woocommerce-rest-api - Woocommerce 自定义下订单 API 无法正常工作 购物车为空
- c - 计算字符串中的括号 - 装配
- excel-formula - 给定范围内的小数之和,忽略数组中的字符,Excel
- asp.net-mvc - 当 url 包含“-”时,IIS 托管应用程序会触发运行时错误