21.2 日志格式

21.2 日志格式大部分商用和开源的HTTP应用程序都支持以一种或多种常用格式进行日志记录。很多这样的应用程序都支持管理者配置日志格式,创建自定义的格式。应用程序支持管理者使用这些更标准的格式的主要好处之一就在于,可以充分利用那些已构建好的工具处理这些日志,并产生基本的统计信息。有很多开源包和商用包都可用来压缩日志,以进行汇报。使用标准格式,应用程序及其管理员就都可以利用这些包了。1.常见日志格式现在,最

大家好,又见面了,我是你们的朋友全栈君。

  • 大部分商用和开源的 HTTP 应用程序都支持以一种或多种常用格式进行日志记录。很多这样的应用程序都支持管理者配置日志格式,创建自定义的格式。
  • 应用程序支持管理者使用这些更标准的格式的主要好处之一就在于,可以充分利用那些已构建好的工具处理这些日志,并产生基本的统计信息。有很多开源包和商用包都可用来压缩日志,以进行汇报。使用标准格式,应用程序及其管理员就都可以利用这些包了。

1. 常见日志格式

  • 现在,最常见的日志格式之一就是常用日志格式。这种日志格式最初由 NCSA 定义,很多服务器在默认情况下都会使用这种日志格式。可以将大部分商用及开源服务器配置为使用这种格式,有很多商用及免费工具都可辅助解析常用日志格式的文件。
  • 常用日志格式字段:
    这里写图片描述
  • 举例:列出了几个常见日志格式条目
    209.1.32.44 - - [03/Oct/1999:14:16:00 -0400] "GET / HTTP/1.0" 200 1024
    http-guide.com - dg [03/Oct/1999:14:16:32 -0400] "GET / HTTP/1.0" 200 477
    http-guide.com - dg [03/Oct/1999:14:16:32 -0400] "GET /foo HTTP/1.0" 404 0
    在这些例子中,字段的分配如下所示:
    这里写图片描述
    注意,remotehost 字段可以是 http-guide.com 那样的主机名,也可以是 209.1.32.44 这样的 IP 地址。
    第二个(username)和第三个(auth-username)字段之间的破折号说明字段为空。这说明要么是没有进行 ident 查找(第二个字段为空),要么是没有进行认证(第三 个字段为空)。

2. 组合日志格式

  • 另一种常用日志格式为组合日志格式(Combined Log Format),例如 Apache 服务器就支持这种格式。
  • 组合日志格式与常用日志格式很类似。实际上,它就是常用日志 格式的精确镜像,只是添加了下表中的两个字段:
    这里写图片描述
  • User-Agent 字段用于说明是哪个 HTTP 客户端应用程序在发起已被记录的请求,而 Referer 字段则提供了更多与请求端在何处找到这个 URL 的有关信息。
  • 举例:一个组合日志格式的条目
    209.1.32.44 - - [03/Oct/1999:14:16:00 -0400] "GET / HTTP/1.0" 200 1024 "http://www.joes-hardware.com/" "5.0: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98)"
    这里写图片描述
  • 组合日志格式条目示例中的前七个字段和常用日志格式中的完全一样,两个新字段 Referer 和 User-Agent 附加在日志条目的末尾。

3. 网景扩展日志格式

  • 网景的格式是基于 NCSA 的常用日志格式的,但它们扩展了该格式,以支持与代理和 Web 缓存这样的 HTTP 应用程序相关的字段。
  • 网景扩展日志格式的前 7 个字段与常用日志格式中的那些字段完全相同,下表为网景扩展日志格式引入的新字段:
    这里写图片描述
  • 举例:一个网景扩展日志格式的条目
    209.1.32.44 - - [03/Oct/1999:14:16:00-0400] "GET / HTTP/1.0" 200 1024 200 1024 0 0 215 260 279 254 3
    这里写图片描述

4. 网景扩展2日志格式

  • 网景扩展2日志格式采用了扩展日志格式,并添加了一些与 HTTP 代理和 Web 缓存应用程序有关的附加信息。这些附加字段有助于更好地描绘 HTTP 客户端和 HTTP 代理应用程序间的交互图景。
  • 网景扩展2日志格式是基于常用日志格式和网景扩展日志格式的,在它们的基础上又增加了 4 个字段:
    这里写图片描述
  • 举例:一个网景扩展2日志格式的条目
    209.1.32.44 - - [03/Oct/1999:14:16:00-0400] "GET / HTTP/1.0" 200 1024 200 1024 0 0 215 260 279 254 3 DIRECT FIN FIN WRITTEN
    这里写图片描述
  • 下表列出了有效的网景路由代码:
    这里写图片描述
  • 下表列出了有效的网景完成代码:
    这里写图片描述
  • 下表列出了有效的网景缓存代码:
    这里写图片描述
    这里写图片描述
  • 与很多其他 HTTP 应用程序一样,网景应用程序也有其他的日志格式,包括一种灵活日志格式和一种管理者输出自定义日志字段的方式。这些格式给予管理者更大的控制权,并可以选择在日志中报告 HTTP 事务处理的哪些部分(首部、状态、尺寸等),以自定义其日志。
  • 由于很难预测管理者希望从其日志中获取哪些信息,才添加了管理者配置自定义格式的能力。很多其他的代理和服务器都有发布自定义日志的能力。

5. Squid 代理日志格式

  • Squid 代理缓存(http://www.squid-cache.org)是 Web 上一个很古老的部分。其起源可以回溯到一个早期的 Web 代理缓存项目(ftp://ftp.cs.colorado.edu/pub/techreports/schwartz/Harvest.Conf.ps.Z)。Squid 是开源社团多年来扩展增强的一个开源项目。有很多工具可以用来辅助管理 Squid 应用程序,包括一些有助于处理、审核及开发其日志的工具。很多后继代理缓存都为自己的日志使用了 Squid 格式,这样才能更好地利用这些工具。
  • Squid日志格式字段:
    这里写图片描述
    这里写图片描述
  • 举例:一个 Squid 日志格式条目
    99823414 3001 209.1.32.44 TCP_MISS/200 4087 GET http://www.joes-hardware.com - DIRECT/proxy.com text/html
    这里写图片描述
  • Squid结果代码:
    这里写图片描述
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132747.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 谷歌浏览器驱动_谷歌驱动的配置与测试「建议收藏」

    谷歌浏览器驱动_谷歌驱动的配置与测试「建议收藏」下载地址使用selenium时,要确保所用的chrome浏览器跟chrome驱动版本对应,否则就会报错。驱动下载地址http://chromedriver.storage.proxy.ustclug.org/index.html77.0版本chromedriver.storage.proxy.ustclug.org/index.htmlhttp://chromedriver.storage.googlea…

    2022年6月14日
    57
  • 彻底弄清 anchorPoint 和 position「建议收藏」

    彻底弄清 anchorPoint 和 position「建议收藏」最近在研读《iOSCoreAnimationAdvancedTechniques》这一本书,想系统地学习下关于CALayer、Transition、以及动画等知识点。大家可以在gitbook上面找到该书的翻译版本。传送门在读到图层几何学这一章的时候,了解到了两个概念:anchorPoint和position。之前一直把position当成是矩形的中心点,如同UIView的center属性(事实上,在不改变anchorPoint的前提下,它确实是图层的中心点),但..

    2022年10月8日
    3
  • 怎么用sql脚本创建数据库_mysql数据库导入

    怎么用sql脚本创建数据库_mysql数据库导入使用sql脚本建立数据库,可以方便各用户,各数据库之间的复制使用,下面将在cmd中完成上述操作:cmd中mysql基本操作:1.连结mysql:C:\Users\WJ>mysql-h127.0.0.1-uroot-p123456其中-h表示host127.0.0.1表示地址,这里你如果是远程访问的话,直接写上远程地址即可,-u-p分别为用户名及密码;2.查看所有数据库:showdatabases;3.操作某一数据库:useschool_2;4.查看该数据库下的表:s

    2022年9月24日
    3
  • 安卓 使用Gradle生成正式签名apk文件「建议收藏」

    安卓 使用Gradle生成正式签名apk文件

    2022年3月2日
    38
  • 踩坑啥意思_年轻人踩坑

    踩坑啥意思_年轻人踩坑Unity小科普老规矩,先介绍一下Unity的科普小知识:Unity是实时3D互动内容创作和运营平台。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助Unity将创意变成现实。Unity平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。也可以简单把Unity理解为一个游戏引擎,可以用来专业制作游戏!

    2025年9月6日
    4
  • django权限管理例子_php万能自定义表单系统

    django权限管理例子_php万能自定义表单系统前言上一篇我们分析了认证的源码,一个请求认证通过以后,第二步就是查看权限了,drf默认是允许所有用户访问权限源码分析源码入口:APIView.py文件下的initial方法下的check_per

    2022年7月31日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号