配置 Jetty 10/11 请求日志

2023-12-02

我正在浏览帖子码头伐木并试图找出打印的每个属性的含义

123.4.5.6 - - [2004 年 8 月 27 日:10:16:17 +0000] “获取/jetty/tut/XmlConfiguration.html HTTP/1.1” 200 76793“http://localhost:8080/jetty/tut/logging.html” “Mozilla/5.0(X11;U;Linux i686;en-US;rv:1.6)Gecko/20040614 Firefox/0.8”

我得到了一些问题的答案,但仍然无法弄清楚下面提到的一些问题。

  1. 123.4.5.6 : 请求.getRemoteAddr()
  2. 破折号(-):无法弄清楚
  3. 破折号(-):无法弄清楚
  4. [27/Aug/2004:10:16:17 +0000]:时间戳
  5. GET : 请求.getMethod()
  6. jetty/tut/XmlConfiguration.html : request.getRequestURI()
  7. HTTP/1.1 : request.getProtocol()
  8. 200:response.getStatus()
  9. 76793:response.getHttpChannel().getBytesWritten()
  10. http://localhost:8080/jetty/tut/logging.html:无法弄清楚
  11. Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040614 Firefox/0.8 : request.getHeader("User-Agent")

如果我对其他属性的理解有误,请纠正我。


Jetty 的最新版本使用以下命令记录请求CustomRequestLog format.

它有 2 种默认的“NCSA”输出格式(以及其他一些格式和自定义格式的能力)

  1. NCSA_FORMAT- 语法声明"%{client}a - %u %t \"%r\" %s %O"
  2. EXTENDED_NCSA_FORMAT- 语法NCSA_FORMAT + " \"%{Referer}i\" \"%{User-Agent}i\""

所以,根据文档CustomRequestLog,这意味着以下输出...

123.4.5.6 - - [27/Aug/2004:10:16:17 +0000]“GET /jetty/tut/XmlConfiguration.html HTTP/1.1”200 76793“http://localhost:8080/jetty/tut/logging .html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040614 Firefox/0.8"

实际上是扩展的 NCSA 格式之一。

就这样崩溃了...

  1. 123.4.5.6 : the %{client}a哪一个是request.getRemoteHost()
  2. - : the -硬编码的字符串-在 Jetty 中,该条目将是“远程日志名称用户”,但由于 Jetty 不支持 identd,因此我们没有办法填写此值(identd 是老式技术,从未被大规模采用) http)
  3. - : the %u这是经过身份验证的用户名,来自 Jetty 内部 API(例如:Request.getAuthentication() or Authentication.getUserIdentity()- 仅当您的 web 应用程序使用 Servlet 安全/身份验证/授权时,此功能才有效 - 自定义身份验证技术不会填写此条目。
  4. [27/Aug/2004:10:16:17 +0000] : the %t这是 Jetty APIRequest.getTimeStamp()这是在请求完成解析后、分派到处理程序或 Web 应用程序进行处理之前确定的。
  5. "GET /jetty/tut/XmlConfiguration.html HTTP/1.1" : the \"%r\"这是 HTTP 中使用的原始“请求行”。这是 HTTP 请求的第一行。 (或者request.getMethod() + request.getOriginalURI() + request.getProtocol())
  6. 200 : the %s这是从 Jetty 内部 API 获取的响应的已提交状态response.getCommittedMetadata().getStatus()(这个 API 存在是因为HttpServletResponse是可变的,并且许多 Web 应用程序倾向于在发送后对其进行修改,这意味着如果我们在此处使用标准 servlet API,我们会记录一个实际上未发送的值)
  7. 76793 : the %O这是作为来自 Jetty 内部 API 的响应的一部分在网络上发送的字节response.getHttpChannel().getBytesWritten()
  8. "http://localhost:8080/jetty/tut/logging.html" : the \"%{Referer}i\"这是请求Referer行(是的,它拼写错误,但是这里有古老的 HTTP 历史来解释为什么会出现这种情况)。它来自request.getHeader("Referer"),在许多情况下可以为空。
  9. "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040614 Firefox/0.8" : the \"%{User-Agent}i\"与上面相同,但是对于User-Agent请求标头。

您可以通过无数种方式自定义此输出,只需阅读CustomRequestLogapidoc 并创建您自己的格式,其中包含您想要的和/或您正在寻找的内容。

https://javadoc.io/doc/org.eclipse.jetty/jetty-server/latest/org.eclipse.jetty.server/org/eclipse/jetty/server/CustomRequestLog.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

配置 Jetty 10/11 请求日志 的相关文章

  • 在Java中使用命令行编译多个包

    您好 我一直在使用 IDE 但现在我需要从命令行运行和编译 问题是我有多个软件包 我试图找到答案 但没有任何效果 所以我有 src Support java files Me java files Wrapers java files 你知
  • 将 Hibernate 对象序列化为 JSON 时抛出异常

    好吧 我正在使用 Hibernate 将一个小型数据库加载到一些表示表的类并与数据库交互 一切都很好 我真的可以看到所有结果 而且我没有任何空字段 所有这些都已被使用 这里我展示了 主 类 表 import javax persistenc
  • Google App Engine with Java - 运行 javac.exe 编译器时出错

    在 Windows XP 上 刚刚下载并解压谷歌应用程序引擎java sdk to C Program Files appengine java sdk 我已经安装了jdk C Program Files Java jdk1 6 0 20
  • Junit maven构建错误(maven-surefire-plugin:2.19.1:测试失败:分叉进程中出现错误)[重复]

    这个问题在这里已经有答案了 我通过引用创建了一个示例 struts 2 项目和 J unit 测试用例link http self learning java tutorial blogspot com au 2015 04 struts2
  • 有多少种方法可以将位图转换为字符串,反之亦然?

    在我的应用程序中 我想以字符串的形式将位图图像发送到服务器 我想知道有多少种方法可以将位图转换为字符串 现在我使用 Base64 格式进行编码和解码 它需要更多的内存 是否有其他可能性以不同的方式做同样的事情 从而消耗更少的内存 现在我正在
  • 容器中的 JVM 计算处理器错误?

    最近我又做了一些研究 偶然发现了这一点 在向 OpenJDK 团队抱怨之前 我想看看是否有其他人观察到这一点 或者不同意我的结论 因此 众所周知 JVM 长期以来忽略了应用于 cgroup 的内存限制 众所周知 现在从 Java 8 更新某
  • Intellij 中的 Google OR-Tools:UnsatisfiedLinkError

    我正在建立一个应该使用 Google OR Tools 的 java 框架 下面的代码编译成功 但在运行时抛出异常 Exception in thread main java lang UnsatisfiedLinkError com go
  • Jenkins 的代码覆盖率 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 当您在数组列表上调用remove(object o)时,它如何比较对象?

    当您在 java 中的数组列表上调用remove object o 时 它如何比较对象以找到要删除的正确对象 它使用指针吗 或者它使用 Comparable 接口来比较对象吗 ArrayList remove 依赖于对象的实现Equal方法
  • 在 Java 中将弯音发送到 MIDI 音序器

    我了解启动和运行 MIDI 音序器的基础知识 并且希望能够在播放过程中增加 减小序列的音高 但弯音是发送到合成器而不是音序器的消息 我尝试将音序器的接收器设置为合成器的发射器 当我发送弯音短消息时 音序器保持相同的音调 但随后合成器以新的弯
  • Java:java.util.ConcurrentModificationException

    我正在制作 2D 目前正在研究用子弹射击 子弹是一个单独的类 所有项目符号都存储在称为项目符号的数组列表中 当它超出屏幕一侧 Exception in thread main java util ConcurrentModification
  • 未解决的包含:“cocos2d.h” - Cocos2dx

    当我在 Eclipse 中导入 cocos2dx android 项目时 我的头文件上收到此警告 Unresolved inclusion cocos2d h 为什么是这样 它实际上困扰着我 该项目可以正确编译并运行 但我希望这种情况消失
  • 如何找到被点击的JLabel并从中显示ImageIcon?

    这是我的代码 我想知道哪个l单击 然后在新框架中显示该 ImageIcon e getSource 不起作用 final JFrame shirts new JFrame T shirts JPanel panel new JPanel n
  • 改变for循环的顺序?

    我遇到一种情况 我需要根据用户输入以不同的顺序循环遍历 xyz 坐标 所以我是 3D 空间中的一个区域 然后是一组像这样的 for 循环 for int x 0 x lt build getWidth x for int y 0 y lt
  • 如何初始化静态地图?

    你会如何初始化静态Map在Java中 方法一 静态初始化方法二 实例初始化 匿名子类 或者 还有其他方法吗 各自的优点和缺点是什么 这是说明这两种方法的示例 import java util HashMap import java util
  • 使用 JAD 反编译 java - 限制

    我正在尝试使用 Java 中的 JAD 反编译几个 jar 文件 我也尝试过 JD GUI 但运气更差 但出现了很多错误 一种类型 易于修复 似乎是内部类 但我也发现了这段代码 static int SWITCH TABLE atp com
  • 失败时石英重试

    假设我有一个这样配置的触发器
  • 摩尔斯电码 至 英语

    我现在的问题是让 摩尔斯电码转英语 正常工作 将英语转换为莫尔斯电码的第一部分工作正常 我知道以前已经有人问过这个问题 但我不知道我做错了什么 我知道我需要在某个地方进行拆分 但我只是不确定将其放在代码中的何处 现在 莫尔斯电码到英语的部分
  • 为什么范围为“provided”的依赖项会隐藏 Maven 中的传递依赖项?

    我的 Maven 项目中有三个模块 这稍微简化了 model包含JPA注释的实体类 坚持实例化一个实体管理器并调用它的方法 应用创建类的实例model 设置一些值并将它们传递给坚持 model and 坚持显然取决于javax persis
  • 如何捕获 try-with-resource 语句中 close 方法抛出的异常

    我正在读关于try with resourceJava 中的语句可用于指定任意数量的资源 try Resource1 res1 initialize code Resource1 res2 initialize code statement

随机推荐