Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >21.2 日志格式

21.2 日志格式

作者头像
全栈程序员站长
发布于 2022-06-28 08:45:57
发布于 2022-06-28 08:45:57
5750
举报

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

  • 大部分商用和开源的 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.cn/132747.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年6月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
编辑精选文章
换一批
Web代理(HTTP代理)
有了Web代理,客户端就可以与代理进行对话,然后由代理代表客户端与服务器进行交流。客户端仍然会完成对事务的处理,但它是通过代理服务器提供的优质服务来实现的。HTTP 的代理服务器既是 Web 服务器又是 Web 客户端。HTTP 客户端会向代理发送请求报文,代理服务器必须像 Web 服务器一样,正确地处理请求和连接,然后返回响应。同时,代理自身要向服务器发送请求,这样,其行为就必须像正确的 HTTP客户端一样,要发送请求并接收响应。
zy010101
2022/10/28
1K0
Web代理(HTTP代理)
Varnish为网站加速
Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸Verdens Gang (http://www.vg.no)使用3台Varnish代替了原来的12台squid,性能居然比以前更好。
胡齐
2019/10/20
3K0
Dapr 可观测性之指标与日志
前面我们了解了 Dapr 可观测性中的分布式追踪部分的支持,本文我们将来介绍下指标和日志这方面的支持。
我是阳明
2022/09/29
5200
Dapr 可观测性之指标与日志
rfc7234之http缓存
声明:本人原创文章,详细内容已发布在我的微信个人技术公众号---网络技术修炼,公众号总结普及网络基础知识,包括基础原理、网络方案、开发经验和问题定位案例等,欢迎关注。
用户1215536
2023/05/03
3400
rfc7234之http缓存
七、《图解HTTP》- HTTP首部和HTTP协作服务器
虽然平时感受不到,但是却是互联网天天在用的东西,这本书花了50多页的内容介绍它,可见它的重要性。
阿东
2022/08/12
1.9K0
七、《图解HTTP》- HTTP首部和HTTP协作服务器
【网络知识补习】❄️| 由浅入深了解HTTP(二)HTTP 的演变
HTTP(超文本传输​​协议)是万维网的底层协议。由 Tim Berners-Lee 及其团队在 1989 年至 1991 年间开发的 HTTP 经历了许多变化,保留了大部分简单性并进一步塑造了其灵活性。HTTP 已经从早期在半可信实验室环境中交换文件的协议演变为现代互联网迷宫,现在承载高分辨率和 3D 图像、视频。
呆呆敲代码的小Y
2021/08/20
3280
【网络知识补习】❄️| 由浅入深了解HTTP(二)HTTP 的演变
PDF Explained(翻译)第四章 文档结构
本文是对PDF Explained(by John Whitington)第四章《Document Structure》的摘要式翻译。
跑马溜溜的球
2021/07/23
1.1K0
代理服务器搭建和加密传输区别_如何自己搭建ip代理服务器
使用squid运行在服务端做代理和缓存的功能,使用stunnel运行在客户端做与squid加密传输的功能
全栈程序员站长
2022/10/05
6740
利用AWStat+JAWStat进行Apache访问日志分析
Apache的访问日志中会记录服务器所处理的所有请求,对apache的访问日志进行分析是一种比较传统的形式。虽然现在很多第三方的统计分析工具提供了嵌入到页面中的JS脚本来进行分析的方式,但是因为两种分析方式的侧重点不同,目前两种形式的日志分析仍并行存在。
大江小浪
2018/07/25
6620
利用AWStat+JAWStat进行Apache访问日志分析
web性能优化之:no-cache与must-revalidate深入探究
引言 稍微了解HTTP协议的前端同学,相比对Cache-Control不会感到陌生,性能优化时经常都会跟它打交道。 常见的值有有private、public、no-store、no-cache、mus
IMWeb前端团队
2017/12/29
1.8K0
web性能优化之:no-cache与must-revalidate深入探究
http报文详解
http报文是http协议的核心所在,http客户端和http服务端正是通过交换http报文进行通信的。http报文以一些文本形式的元信息(meta-information)开头,这些信息描述了报文的内容及含义,后面跟着可选的数据部分。
zy010101
2022/10/05
7590
http报文详解
squid+apache实现缓存加速「建议收藏」
本实例是squid和apache在同一台机器上,squid做前端反向代理。port为80,apache作为后端web,port为81
全栈程序员站长
2022/07/07
6310
squid+apache实现缓存加速「建议收藏」
配置Nginx访问与错误日志
Nginx是一个开放源代码的高性能HTTP和反向代理服务器,负责处理Internet上某些最大站点的负载。在管理NGINX网络服务器时,你要执行的最常见任务之一就是检查日志文件。 在对服务器或应用程序问题进行故障排除时,知道如何配置和读取日志非常有用,因为它们提供了详细的调试信息。 Nginx用两种类型的日志记录其事件:访问日志和错误日志。访问日志记录有关客户端请求的信息,错误日志记录有关服务器和应用程序问题的信息。 本教程概述了如何配置和读取Nginx访问和错误日志。配置Nginx访问日志的格式与位置,配
入门笔记
2022/06/02
1K0
HTTP_POST请求的数据格式
通过上面的例子,我们可以看到在Request Headers里面以后很多字段,比如Content-type,Host这些,那么这些字段又有什么意思呢,下面通过表格来介绍一下:
全栈程序员站长
2022/07/21
1.3K0
Python 3.6.x字符串格式化方法小结
1 使用%符号进行格式 使用%符号进行字符串格式化的形式如下图所示,格式运算符%之前的部分为格式字符串,之后的部分为需要进行格式化的内容。 Python支持大量的格式字符,下表列出了比较常用的一部
Python小屋屋主
2018/04/16
1.3K0
Python 3.6.x字符串格式化方法小结
「云网络安全」为AWS S3和Yum执行Squid访问策略
在本文中,我们将设置一个示例情况,展示如何使用开源Squid代理从Amazon虚拟私有云(VPC)中控制对Amazon简单存储服务(S3)的访问。首先,您将配置Squid以允许访问Linux Yum存储库。接下来,您将配置Squid,以限制对已批准的Amazon S3 bucket列表的访问。然后,您将配置Squid以根据URL直接流量,将一些请求发送到Internet网关(IGW),并将其他流量发送到虚拟专用网关(VGW)。最后,您将探索使Squid高度可用的选项。
架构师研究会
2021/01/06
3.3K0
「云网络安全」为AWS S3和Yum执行Squid访问策略
RFC2616-HTTP1.1-Header Field Definitions(头字段规定部分—译文)
part of Hypertext Transfer Protocol -- HTTP/1.1
zaking
2018/10/12
1.6K0
HTTP协议的那些方法
HTTP的方法?没错,你看到的就是HTTP中有哪些方法。HTTP方法的作用在于,可以指定请求的资源按期望产生某种行为。方法中有 GET、POST 和 HEAD 等。
smile风的色彩
2023/04/12
3720
HTTP协议的那些方法
六万字 HTTP 必备知识学习,程序员不懂网络怎么行,一篇HTTP入门 不收藏都可惜
作为一名程序员,可能多数人都偏向于后端敲代码,但是关于Web的知识可千万不能忘呀!
呆呆敲代码的小Y
2022/05/10
9250
六万字 HTTP 必备知识学习,程序员不懂网络怎么行,一篇HTTP入门 不收藏都可惜
全面了解 javascript语言的发展史
作为前端工程师竟然不了解语言的发展历史或者了解的不够清楚,这样太耻辱了。所以周末搜集了一些资料,现整理如下。如有问题还请留言指正。感谢阅读!
zz_jesse
2020/03/17
6990
推荐阅读
相关推荐
Web代理(HTTP代理)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档