3

我有一个包含多个子域的站点,所有子域都记录到同一个 access_log 文件中。由于文件可能非常大,我有一个脚本可以将每个子域提取到自己的文件中。

我在 Apache 中有一个自定义日志文件格式,如下所示:

"\"%{Host}i\" %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""

我的日志文件中的一行如下所示:

"brand.mysite.com" 176.32.1.18 - - [24/Oct/2010:11:24:45 -0400] "GET /Product/lookup HTTP/1.1" 200 5585 "http://www.customerhomepage.com/brand_name.htm" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.1; .NET CLR 1.1.4322)"

日志格式10条,日志10条。查看。

我正在尝试使用 awstats 在我的 awstats 配置文件中使用以下 Logformat 分析这些:

LogFormat="\"%host_r\" %host %logname %logname %time1 %methodurl %code %bytesd %refererquot %uaquot"

我从 awstats 获得的唯一输出来自每月历史记录部分。其他所有内容要么为空白要么为零。

我的生成脚本如下所示:

rm stats/*.txt
cat access_log | grep brand > brand_access_log
perl tools/awstats_updateall.pl -configdir=wwwroot/cgi-bin -awstatsprog=wwwroot/cgi-bin/awstats.pl now
perl tools/awstats_buildstaticpages.pl -dir=stats -output=pagetype -config=brand -awstatsprog=wwwroot/cgi-bin/awstats.pl

我究竟做错了什么?

4

1 回答 1

3

我没有意识到我可以只剪切和粘贴 Apache LogFormat 指令(带有 = 符号)并且它会起作用,我以为我被迫使用 awstats。

awstats 将使用 httpd.conf 文件中的 LogFormat 指令并将其替换为 awstats 标识符。

我直接从我的 Apache2 httpd.conf 将其剪切并粘贴到我的 awstats.whatever.conf 文件中(然后在 LogFormat 之后添加了 = 符号):

LogFormat="\"%{Host}i\" %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
于 2010-11-09T21:35:42.700 回答