标准规定了四种类型的日志:
错误日志
访问日志
传输日志
日志
其中: log 和 log 在 2.0 中被视为废弃。所以本节只讨论 error log 和 log。同时,error log 和 log 在 2.0 中是默认设置的。
从日志中可以获得什么信息?
* 访问日志
o 访问服务器的远程机器的地址:你可以知道浏览器来自哪里
o 访客访问的资源:这可以告诉你网站哪些部分最受欢迎
o 访客的浏览时间:可根据浏览时间(如工作时间或休闲时间)调整网站内容
o 访问者使用的浏览器:可以根据大多数访问者使用的浏览器对网站进行优化
* 错误日志
o 获取有关断开链接的信息
o 接收 CGI 错误
o 接收用户身份验证错误
配置错误日志
错误日志记录了服务器运行过程中遇到的各种错误,以及一些常规的诊断信息,例如服务器何时启动、何时关闭。
错误日志配置说明
该指令指定服务器遇到错误时记录错误日志的文件名。其格式为:
格式 1:错误日志文件名
格式2:“|管道程序名称”
格式 1 直接指定错误日志文件名。除非文件位置以“/”开头,否则指定的文件位置是目录的相对路径。
格式 2 实现管道日志记录,它指定一个命令来处理错误日志。
使用以下命令可以获取编译过程中的默认错误日志:
$ -V|grep
-D =“日志/”
用于调整错误日志中记录的信息的详细程度。其格式为:
错误日志记录级别
以下重点介绍日志级别:
紧急程度描述
1 emerg 发生紧急情况,导致系统不可用,例如系统宕机。
2 警报 需要立即关注的情况
3 crit 危险情况警告
4 error 除 emerg、alert 和 crit 之外的其他错误
5 warn 警告信息
6 需要注意但不如错误和警告重要的情况
7 信息 值得报道的一般新闻
8 debug 在调试模式下运行的程序产生的消息
如果指定了警告级别,则会记录紧急级别为 1 至 5 的所有错误消息。
错误日志配置
配置错误日志比较简单,只需要指定日志文件的存储路径,以及错误日志的记录级别即可。
从/etc//.conf中我们可以看到默认的错误日志存放在/var/log//error.log中
/var/log//错误日志
警告
您可以在 /etc/<host>/.conf 或相应的虚拟主机配置文件中设置错误日志记录级别。
错误日志文件示例
以下是错误日志文件的摘录。
$ sudo tac /var/log//error.log
[2007 年 6 月 20 日星期三 14:53:15] [错误] [ 192.168.0.66] 文件不存在:/usr/share//.ico
[2007 年 6 月 20 日星期三 11:12:50] [] /2.0.55 () DAV/2 SVN/1.3.1 /3.1.4 /2.4.3 PHP/5.1.2 --
[2007 年 6 月 20 日星期三 11:12:49] [] : 完成
[2007 年 6 月 20 日,星期三 11:12:49] [] : 对于...
[2007 年 6 月 20 日星期三 09:22:22] [] ,向下
从文件内容可以看出,每一行都记录了一个错误。格式为:
日期时间 错误级别 错误信息
配置访问日志
该命令用于记录服务器的请求。格式为:
格式1:访问日志文件名记录格式描述字符串|格式昵称
格式2:“|管道程序名称访问日志文件名”记录格式描述字符串|格式昵称
在:
1.
访问日志文件名:除非文件位置以“/”开头,否则指定的文件位置是目录的相对路径。
2.
格式昵称:使用该命令为记录格式描述字符串分配一个名称
3.
记录格式描述字符串:使用字符串和格式说明符(以%开头)来指定日志记录的内容
4.
管道程序名:管道符“|”后面跟着程序的路径,该程序从标准输入设备读取并处理日志。
默认配置不使用访问日志设置,如果要记录访问日志,需要在虚拟主机配置文件中单独设置,例如在/etc/<>/sites-/中有如下设置:
/var/日志//.log
为了方便分析访问日志,在默认的配置文件中,将访问日志按照记录的信息不同分为4类(不同的信息通过不同格式的昵称来描述),昵称由指令定义,如表所示。
格式分类 格式昵称 说明
常见日志格式(log,CLF)大部分日志分析软件都支持此格式
参考日志格式(log)记录访问网站的客户的用户身份
代理日志格式(agent log)agent记录请求的用户代理
综合日志格式(log)综合了以上三种日志信息
该指令用于定义访问日志的记录格式,格式为:
“记录格式规范字符串”格式昵称
从/etc//.conf中我们可以看到定义了以下四种类型的访问日志:
"%h %l %u %t \"%r\" %>s %b \"%{}i\" \"%{User-Agent}i\""
“%h%l%u%t \“%r\”%> s%b”
“%{}i -> %U”
“%{User-agent}i” 代理
由于综合日志格式只是将三种日志信息简单合并起来,所以在配置访问日志时,要么使用综合文件进行记录,要么使用单独的多个(1-3)文件进行记录。通常使用综合日志格式文件进行记录,配置为:
/var/日志//.log
如果使用三个文件进行录音,则配置为:
/var/日志//.log
/var/日志//.log
/var/log//agent.log 代理
以下命令组:
“%h%l%u%t \“%r\”%> s%b”
日志/
相当于以下命令:
日志/“%h%l%u%t \“%r\”%> s%b”
通常我们在配置访问日志的时候,采用的是先使用指令定义格式昵称,然后在指令中引用该昵称的方法。
格式说明符
为了在使用和指示上描述所要记录的日志内容,可以使用的常见格式说明符如下表所示。
格式说明符描述
%v 提供服务的服务器的完全限定名称,通常用于虚拟主机日志记录。
%h 客户端计算机的 IP 地址。
%l 从服务器获取远程登录名。基本上已经弃用了。
%u 来自经过身份验证的远程用户。
%t 连接的日期和时间。
%r HTTP 请求中第一行信息,典型格式为“ ”,表示“方法资源协议”,常用GET、POST、HEAD 等;指浏览器向服务器请求的文档或URL;通常是HTTP,后面跟着版本号,通常是HTTP/1.1。
%>s 响应请求的状态码,一般此项的值为200,表示服务器成功响应了浏览器的请求,一切正常;以3开头的状态码表示用户请求由于各种原因被重定向到其他位置;以4开头的状态码表示客户端出现某种错误;以5开头的状态码表示服务器遇到了错误。
%b 传输的字节数(不包括HTTP头信息)。把日志记录中的这些值加起来,你就能知道服务器在一天、一周或一个月内发送了多少数据。
%{}i 记录引用此资源的网页。
%U 请求的 URL 路径,不包括查询字符串。
%{User-Agent}i 有关所用浏览器的信息。
访问日志文件示例
以下是从访问日志文件中提取的三条记录。
$ sudo tac /var/log//.log
192.168.0.66 - - [21/Jun/2007:22:07:58 +0800] "GET /index.html HTTP/1.1" 200 1185 "-" "/4.0 (; MSIE 6.0; NT 5.1; SV1; ; .NET CLR 2.0.50727)"
192.168.0.77 - - [19/Jun/2007:21:03:33 +0800] "GET //style/.css HTTP/1.1" 404 1203 "" "/4.0 (; MSIE 6.0; NT 5.0)"
192.168.0.66 - - [19/Jun/2007:19:21:55 +0800] "GET //lib/exe/css.php?s=print HTTP/1.1" 304 - "" "/5.0 (; U; NT 5.1; en-US; rv:1.8.0.12) Gecko/ /1.5.0.12"
将每项信息分成下表。
格式说明符 示例 1 示例 2 示例 3
%小时 192.168.0.66 192.168.1.77 192.168.0.66
%l —(表示未获得任何信息)— —
%u---
%t [21/6/2007:22:07:58 +0800] [19/6/2007:21:03:33 +0800] [19/6/2007:19:21:55 +0800]
%r“获取/index.html HTTP/1.1”“获取//style/.css HTTP/1.1”“获取//lib/exe/css.php?s=print HTTP/1.1”
%>s 200 404 304
%b 1185 1203 -
%{}我 ”-” ”” ””
%{User-Agent}i "/4.0 (; MSIE 6.0; NT 5.1; SV1; ; .NET CLR 2.0.50727)" "/4.0 (; MSIE 6.0; NT 5.0)" "/5.0 (; U; NT 5.1; en-US; rv:1.8.0.12) Gecko/ /1.5.0.12"
由于整个格式字符串被“”包围,如果需要输出的日志信息包含引号,那么需要在“”前添加转义字符\。例如如果要输出子字符串“GET /.gif HTTP/1.0”,则格式字符串为\“%r\”。
扫一扫在手机端查看
-
Tags : 查看apache日志
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。