SpringBoot--Undertow AccessLog 响应时长的打印

server.undertow.accesslog.dir=./logs/access_log  //日志路径
server.undertow.accesslog.enabled=true //开启accesslog
server.undertow.accesslog.pattern=%t %a "%r" %s (%D ms)

但是问题来了,改了以后自己测试发现pattern生效了,但是那个%D竟然打不出来,查看undertow文档
http://undertow.io/undertow-docs/undertow-docs-2.0.0/index.html#access-log-handler

没办法,继续在文档里找线索,搜一下request time看看,然后就搜到了这一条配置:

 

也就是说必须要开启这个配置,才能在访问日志里打印响应时间,至于undertow为什么不默认开启这个配置,是因为开启后会对性能造成影响
在spring boot(2.0)要开启这个配置需要通过代码进行配置:
复制代码
import io.undertow.Undertow;
import io.undertow.UndertowOptions;
import org.springframework.boot.web.embedded.undertow.UndertowBuilderCustomizer;
import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class UndertowConfig {

    @Bean
    public UndertowServletWebServerFactory undertowServletWebServerFactory() {
        UndertowServletWebServerFactory factory = new UndertowServletWebServerFactory();
        factory.addBuilderCustomizers(new UndertowBuilderCustomizer() {
            @Override
            public void customize(Undertow.Builder builder) {
                builder.setServerOption(UndertowOptions.RECORD_REQUEST_START_TIME, true);
            }
        });
        return factory;
    }
}
复制代码

 

posted @ 2019-04-23 17:55  javaeelwh  阅读(2601)  评论(0)    收藏  举报
编辑推荐:
· 如何正确实现一个 BackgroundService
· 抽象与性能:从 LINQ 看现代 .NET 的优化之道
· AI 时代,为什么我们还有必要写博客?
· 行业思考:不是前端不行,是只会前端不行
· C#高级GDI+实战:从零开发一个流程图
阅读排行:
· 被 DDoS 攻击的一夜
· 一个被BCL遗忘的高性能集合:C# CircularBuffer<T>深度解析
· 仅一个 Python 文件,狂揽近 2 万 Star「GitHub 热点速览」
· 上周热点回顾(7.28-8.3)
· 架构师必备:实时对账与离线对账
点击右上角即可分享
微信分享提示