关于SpringBoot undertowaccesslog的格式

1.背景

1.收集accesslog日志。
2.项目使用SpringBoot的undertow
3.日志格式有特殊要求。

2.问题原因

关于寻找日志格式的路上,花费了不少时间,其中,在各种博客上、SpringBoot官网上和Apache Access Logging标准。
都没有找到undertow配置的相关答案。大部分博客都是把官网的说明直接翻译了一下。

而容器undertowtomcat的配置是有一定的差别的。照搬Tomcat的日志配置是不行的,如下。

pattern: '%a - - %t "%m %U" %s %{content-length}o "%U" "%{User-Agent}i" "%A" "%b" "%T"'

会报如下错误:

2020-09-10 09:35:46.239 ERROR 13112 --- [main] io.undertow: UT005017: Unknown variable %{content-length}. For the literal percent character use two percent characters: '%'
2020-09-10 09:35:46.239 ERROR 13112 --- [main] io.undertow: UT005017: Unknown variable %{User-Agent}. For the literal percent character use two percent characters: '%'

3.解决方案

在一筹莫展之际,我突然想起,虽然官网的说明可能是简写,但是源码是不会简写的。所以,我找到了SpringBoot的源码包io.undertow.attribute,打开其中一个ResponseResponseHeaderAttribute。看到如下代码,瞬间明白了写法。

Tomcat中的写法是%{User-Agent}i

而通过undertow的源码得知,其的写法为%{i,User-Agent}

至此,问题解决。分享下我的日志格式。

pattern: '%a - - %t "%m %U" %s %{o,content-length} "%{i,User-Agent}" "%A" "%b" "%T"'

输出日志

0:0:0:0:0:0:0:1 - - [10/Sep/2020:09:27:19 +0800] "POST /user/get" 200 - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36" "0:0:0:0:0:0:0:1" "64" "-"

Undertow官网说明

SpringBoot undertow accesslog格式相关推荐

  1. SpringBoot接收Xml格式参数并转换为POJO对象

    SpringBoot接收Xml格式参数并转换为POJO对象 1. 所需JavaBean @XmlAccessorType(XmlAccessType.FIELD) @XmlType(propOrder ...

  2. SpringBoot传输XML格式

    SpringbBoot传输XML格式数据 现在的Ajax传输数据越来越多的人使用的是json格式,理由也很简单,方便.快捷.打字少!但是工作中会遇到XML格式的数据传输的情况,今天就和大家分享一下sp ...

  3. 基于springboot的多格式转PDF

    一.项目简介 基于springboot的多格式转PDF 二.实现功能 支持文件上传 支持文件转 PDF 支持文件转图片(会先将文件转为 pdf,然后再用 pdfbox 转为图片) 支持参数配置 支持前 ...

  4. springboot undertow替换tomcat方式

    版权声明: https://blog.csdn.net/weixin_38187317/article/details/81532560 说明         undertow,jetty和tomca ...

  5. SpringBoot实现PPT格式文件上传并在线预览

    1.需要引入依赖 <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf< ...

  6. java 原生 json 转 xml java json转xml 实现代码 读取本地json文件 转成 xml数据 用springboot 发布xml格式数据

    结果xml截图 json数据 main启动 import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; ...

  7. SpringBoot返回XML格式数据

    首先,添加Jackson dependency依赖到pom.xml中 <dependency> <groupId>com.fasterxml.jackson.dataforma ...

  8. SpringBoot 返回xml格式

    首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的.教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈-我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转 ...

  9. springboot输出json格式日志

    1.在pom文件中添加依赖 <dependency><groupId>net.logstash.logback</groupId><artifactId> ...

最新文章

  1. 北大图灵班本科生获STOC最佳论文奖!这个对标清华姚班的人才计划,正在频频交出答卷...
  2. Angular JS 中的内置方法之表单验证
  3. Java线程之守护线程(Daemon)
  4. DIY一个高大上带提醒的计时器,简单实用,你还在等什么
  5. vue动态跟新layui的select_vue+layui实现select动态加载后台数据的例子
  6. 2017.10.25水题大作战题解
  7. 美团“共享单车变球场”项目落地四川阿坝
  8. SuperMap IS.NET保存地图之Ajax篇(转)
  9. [转载] python自带sqlite库_Python内置库SQlite3使用指南
  10. 好用的MARKDOWN编辑器一览
  11. apkg格式怎么打开_天正软件如何导成CAD识别格式
  12. windows下如何制作和应用数字签名证书 全流程
  13. 跨平台APP开发心路历程
  14. 关于使用Windows10系统,使用LR11录制app脚本的方法说明
  15. 图片显示方向不对怎么办
  16. 管程法解决生产者消费者问题
  17. 消息传递,生产者消费者
  18. a ^ 3 = b ^ 3 + c ^ 3 + d ^ 3
  19. 详解什么是Polygon跨链桥
  20. 微信小程序实例-摇一摇抽奖

热门文章

  1. [含lw+源码等]S2SH+mysql水费管理系统[包运行成功]Java毕业设计计算机毕设
  2. scratch3.0 二次开发-基本介绍(第一章)
  3. ICT产业正在向四大趋势变革
  4. 微信知乎B站赚钱套路揭秘… 如何把高考猛人忽悠瘸?(附人类简史电子书)
  5. 经纬度转geohash函数
  6. 【电气专业知识问答】问:厂用电动机如何选择?
  7. 大白菜装机版安装win7系统使用教程
  8. ZYNQ进阶之路13--自定义AXI-FULL IP实现PS和PL双向高速通讯
  9. 全国计算机一级考点wps,2018年计算机一级考试WPS考点:制作WPS文档封面
  10. 锂电革命势在必行,电动两轮车锂电这块蛋糕怎么瓜分?安全是第一道“投名状”!