Apache日志
apache日志位置
1  | ## CentOS,Fedora,RedHat:  | 
访问日志文件
始终将访问日志写入单个文件不是可行的方法。 随着时间的流逝,在标准的Web服务器中,将有许多访问日志文件,它们以结构化的方式命名。 我们可以使用ls命令列出访问日志文件。
1  | ls -lh /var/log/apache2/access.*  | 

将旧的访问日志文件名加1到文件名的末尾,最后2个最近的访问日志文件后将压缩较旧的访问日志文件,以节省空间。 默认情况下,使用gzip或gz压缩,并且压缩文件的名称类似于
access.log.2.gz,以表示使用gzip压缩了该文件。
zless读取压缩的访问日志文件
1  | zless /var/log/apache2/access.log.2.gz  | 
zgrep搜索,过滤和Grep压缩访问日志
1  | zgrep Mozilla /var/log/apache2/access.log.2.gz  | 
Apache访问日志
格式分类
apache中日志记录格式主要有两种,普通型(common)和复合型(combined),安装时默认使用普通型(common)类型日志记录访问信息。
配置文件位置&格式
apache2服务器的配置文件位置/etc/apache2/apache2.confCentOS或RedHat/etc/httpd/httpd.conf
LogFormat指令:定义格式并为格式指定一个名字,以后我们就可以直接引用这个名字。
CustomLog指令:设置日志文件,并指明日志文件所用的格式(通常通过格式的名字)。
默认日志格式
1  | 192.168.77.175 - - [18/Aug/2021:03:54:21 -0400] "GET /icons/openlogo-75.png HTTP/1.1" 200 6040 "http://192.168.88.132:8088/" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"  | 

1  | LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined  | 
%h         客户端的IP地址
%l         客户端身份 (输出中的连字符-表示请求的信息不可用)
%u         客户端的userid(如果用户已通过身份验证)
%t         请求到达的日期时间
\"%r\"Client 端的请求行以双引号引起来,包含客户端使用方法,请求资源,使用协议。%m %U%q %H”将记录方法,路径,查询字符串和协议,从而得到与\"%r\"完全相同的输出
%>s 服务器发送回客户端的响应码
%O 发送的字节(包括 Headers)不能为零    mod_logio模块    Apache 模块 mod_logio
\"%{Referer}i\"  HTTP 请求 Headers,提供客户端报告已被引用的站点
\"%{User-agent}i\"用户代理 HTTP 请求 Headers,这是客户端浏览器报告的有关其自身的标识信息
%b返回给客户端的对象的大小,不包括响应头。若没有内容返回给客户端该值为-。要记录0无内容,请改用%B
%v用于记录正在处理请求的虚拟主机的名称。然后,可以使用诸如split-logfile之类的程序对访问日志进行后处理,以便将其分为每个虚拟主机一个文件。
Apache错误日志
1  | [Fri Aug 20 03:35:41.969417 2021] [mpm_prefork:notice] [pid 1835] AH00163: Apache/2.4.46 (Debian) configured -- resuming normal operations  | 
1  | ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client %a] %M"  | 
| Format String | Description | 
|---|---|
%% | 
百分号 | 
%a | 
Client 端 IP 地址和请求的端口 | 
%{c}a | 
基础对等 IP 地址和连接端口(请参阅mod_remoteip模块) | 
%A | 
本地 IP 地址和端口 | 
%{name}e | 
请求环境变量名称 | 
%E | 
APR/OS 错误状态代码和字符串 | 
%F | 
日志调用的源文件名和行号 | 
%{name}i | 
请求 Headers名称 | 
%k | 
此连接上的保持活动请求数 | 
%l | 
消息的日志级别 | 
%L | 
请求的日志 ID | 
%{c}L | 
连接的日志 ID | 
%{C}L | 
连接的日志 ID(如果用于连接范围),否则为空 | 
%m | 
记录消息的模块的名称 | 
%M | 
实际的日志消息 | 
%{name}n | 
要求说明名称 | 
%P | 
当前进程的进程 ID | 
%T | 
当前线程的线程 ID | 
%{g}T | 
当前线程的系统唯一线程 ID(与top显示的 ID 相同;当前仅 Linux) | 
%t | 
当前时间 | 
%{u}t | 
当前时间,包括微秒 | 
%{cu}t | 
紧凑型 ISO 8601 格式的当前时间,包括微秒 | 
%v | 
当前服务器的规范ServerName。 | 
%V | 
根据UseCanonicalName设置为请求提供服务的服务器的服务器名称。 | 
\(反斜杠空格) | 
非场定界空间 | 
%(空间百分比) | 
字段定界符(无输出) | 





