APACHE访问日志格式 和 LogFormat语法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了APACHE访问日志格式 和 LogFormat语法相关的知识,希望对你有一定的参考价值。

访问日志记录用户的每一个请求

打开apache主配置文件

vim /usr/local/apache2.4/conf/httpd.conf
主配置文件里提供了两种日志的模板:common和combined
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
主配置文件里预设日志模板是common
CustomLog "logs/access_log" common
可以在虚拟主机里面更改日志模板
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/aaa.com"
    ServerName aaa.com
    ServerAlias www.aaa.com  www.abc.com
    ErrorLog "logs/aaa.com-error_log"
    CustomLog "logs/aaa.com-access_log" common
</VirtualHost>
//可以根据需求,把common改成combined

COMBINED 日志模板详解

LogFormat "%h  %l  %u  %t  \"%r\"  %>s  %b  \"%{Referer}i\"  \"%{User-Agent}i\"" combined

它记录的样子是这样的:

59.126.205.242 - - [04/Jan/2009:23:30:57 +0800] "GET /main/images/login/login_05.png HTTP/1.1" 200 1355 "http://exmaple.com/i1.php?fun=login_show" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5 FirePHP/0.2.1"

说明如下:
1. 59.126.205.242 是客户端IP
2. 第一个 ‘-‘ 是 %l 因为此网页不必认证,所以logname 为空
3. 第二個 ‘-‘ 是 %u 因为此网页不必认证,所以username 为空
4. [04/Jan/2009:23:30:57 +0800] 是时间
5. "GET /main/images/login/login_05.png HTTP/1.1" 为客户端的 request
6. 200  %s 是状态,%s 是取得最后的状丰收,数字200代表 OK
7. 1355 排除掉 HTTP的headers后的长度(Bytes)
8. "http://example.com/main/i1.php?fun=login_show" 记录 referer。也就是导到此request的页面的呼叫者,这里可以当来源分析。
9. "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5 FirePHP/0.2.1" 是客戶端的浏览器状态。

以上是关于APACHE访问日志格式 和 LogFormat语法的主要内容,如果未能解决你的问题,请参考以下文章

Linux-LNMP-Apache访问日志

apache httpd LogFormat 不支持 strftime 格式

配置apache访问日志和日志切割

配置apache访问日志和日志切割

Apache 配置访问日志

模拟 6.0 日志格式错误