Apache使用通用日志格式记录日志


关键词

Apache 通用日志

摘要

本文介绍Apache服务器的日志记录。Apache日志一般定义两条命令,一条定义日志格式,一条定义日志路径。

Apache支持通用日志格式(Common Log Format)、组合日志格式(Combined Log Format)、条件日志等,今天我们重点介绍通用日志格式。所谓的通用日志格式就是使用标准的格式化字符来定义日志格式。百分号是我们熟知的作为格式化输出的控制字符,Apache也是采用百分号来作为控制字符的。

我们先来看一个典型的记录格式:

LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog logs/access_log common

它定义了一种特定的记录格式字符串,并给它起了个别名叫common ,其中的"%"指示服务器用某种信息替换,其他字符则不作替换。引号(")必须加反斜杠转义,以避免被解释为字符串的结束。格式字符串还可以包含特殊的控制符,如换行符"\n" 、制表符"\t"。

CustomLog指令建立一个使用指定别名的新日志文件,除非其文件名是以斜杠开头的绝对路径,否则其路径就是相对于ServerRoot的相对路径。

上述配置是一种被称为通用日志格式(CLF)的记录格式,它被许多不同的Web服务器所采用,并被许多日志分析程序所识别,它产生的记录形如:

127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326

记录的各部分说明如下:

127.0.0.1 (%h)
    这是发送请求到服务器的客户的IP地址。如果HostnameLookups设为 On ,则服务器会尝试解析这个IP地址的主机名并替换此处的IP地址,但并不推荐这样做,因为它会显著拖慢服务器,最好是用一个日志后续处理器来判断主机名,比如logresolve 。如果客户和服务器之间存在代理,那么记录中的这个IP地址就是那个代理的IP地址,而不是客户机的真实IP地址。
- (%l)
    这是由客户端identd进程判断的RFC1413身份(identity),输出中的符号"-"表示此处的信息无效。除非在严格控制的内部网络中,此信息通常很不可靠,不应该被使用。只有在将IdentityCheck指令设为 On 时,Apache才会试图得到这项信息。
frank (%u)
    这是HTTP认证系统得到的访问该网页的客户标识(userid),环境变量REMOTE_USER会被设为该值并提供给CGI脚本。如果状态码是401,表示客户未通过认证,则此值没有意义。如果网页没有设置密码保护,则此项将是"-"。
[10/Oct/2000:13:55:36 -0700] (%t)
    这是服务器完成请求处理时的时间,其格式是:

    [日/月/年:时:分:秒 时区]
    日 = 2数字
    月 = 3字母
    年 = 4数字
    时 = 2数字
    分 = 2数字
    秒 = 2数字
    时区 = (+|-)4数字
    可以在格式字符串中使用 %{format}t 来改变时间的输出形式,其中的format与C标准库中的strftime()用法相同。
"GET /apache_pb.gif HTTP/1.0" (\"%r\")
    引号中是客户端发出的包含许多有用信息的请求行。可以看出,该客户的动作是GET ,请求的资源是/apache_pb.gif ,使用的协议是HTTP/1.0 。另外,还可以记录其他信息,如:格式字符串"%m %U%q %H"会记录动作、路径、查询字符串、协议,其输出和"%r"一样。
200 (%>s)
    这是服务器返回给客户端的状态码。这个信息非常有价值,因为它指示了请求的结果,或者是被成功响应了(以2开头),或者被重定向了(以3开头),或者出错了(以4开头),或者产生了服务器端错误(以5开头)。完整的状态码列表参见HTTP规范(RFC2616第10章)。
2326 (%b)
    最后这项是返回给客户端的不包括响应头的字节数。如果没有信息返回,则此项应该是"-",如果希望记录为"0"的形式,就应该用%B 。

关于Apache使用通用日志格式记录日志,本文就介绍这么多,希望对您有所帮助,谢谢!

 

文章的版权

本文来源于互联网,如果文章侵犯了您的权宜,请与我们“splaybow(@)qq.com”联系,谢谢合作!

关注与收藏

如果您在服务器运维、网络管理、网站或系统开发过程中有任何疑问,洪哥以此为饭碗,请加QQ:115085382!
了解更多好文章,请关注我们的新浪微博和腾讯微博
亲,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D


« Apache中为什么不使用.htaccess文件? 设置Apache支持shtml(SSI) »

相关文章:

Apache2.4目录访问控制指令require  (2015/6/22 10:47:21)

Win下apache绑定域名  (2014/6/3 11:36:40)

apache增加mod_rewrite模块  (2014/3/29 11:54:43)

配置Apache防止webshell上传  (2014/3/27 11:09:34)

设置Apache支持shtml(SSI)  (2014/2/12 9:49:01)

Apache使用通用日志格式记录日志  (2014/1/27 20:55:04)

Apache中为什么不使用.htaccess文件?  (2014/1/15 14:48:33)

Apache中的.htaccess文件  (2014/1/15 14:40:52)

Apache绑定IP绑定端口  (2014/1/8 17:50:59)

Apache开启gzip  (2013/12/29 21:23:26)