是否可以使用 Apache2 创建仅包含 404 HTTP 状态代码的日志文件(例如 not_found.log)?
像这样:http://www.helicontech.com/articles/mod_log_config-capabilities/ (按状态码区分)
该解决方案的主要问题是,当状态不匹配时,每个日志将包含一个非信息记录,如下所示(--,- -- -):
猫/var/log/apache2/not_found.log
[28/Aug/2013:16:45:42 +0200] 192.168.1.0.,Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 版本/12.15 /index.php/LogApache/titi 404
[28/Aug/2013:16:45:43 +0200] 88.191.153.141,Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 版本/12.15 /favicon.ico 404 - -,- -- - - -,- -- -
我的目标是计算 404 次命中,而解析超过 1 000 000 行的 access_log 需要太多时间,这就是为什么我只想在 not_found.log 上运行 wc -l。
预先感谢您的帮助,
此致,
答案1
我的目标是计算 404 次命中,而解析超过 1 000 000 行的 access_log 需要太多时间,这就是为什么我只想在 not_found.log 上运行 wc -l。
graeme@server:~$ wc -l access_log
10219670 access_log
graeme@server:~$ time awk '$9 == 404' access_log |wc -l
11060
real 0m23.791s
user 0m14.440s
sys 0m2.450s
也就是说,统计 10,000,000 行文件中的 404 错误需要 23 秒。还不够快吗?