Awstats 日志格​​式拼写错误?

Awstats 日志格​​式拼写错误?

我已经浏览过 awstats 文档一段时间了,但 Logformat 似乎出现了问题。

我在 awstats 中使用以下内容,

LogFormat = "%host - - %host_r %time1 %methodurl %code %bytesd %refererquot %uaquot %otherquot"

(来自 nginx)

 log_format   main
'$remote_addr - $remote_user [$time_local] $request '
    '"$status" $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  logs/access.log main;

样本点击数: http://pastebin.com/raw.php?i=qD9PKN52

答案1

我认为您的日志行中缺少"一些对象,而其他不需要它们的对象周围却有这些对象。

尝试

 log_format   main
'$remote_addr - $remote_user [$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  logs/access.log main;

答案2

确实如此。从 $status 中删除“”并将其放入 $request 应该可以解决问题。

此外,如果您像我一样已经拥有大量“损坏”的日志,您可以运行:

sed -i "s/00\]\ /00\]\ \"/g" access.log

sed -i "s/\(HTTP\/[0-9].[0-9]\)\ \"\([0-9][0-9][0-9]\)\"/\1\"\ \2/g" access.log

这将使旧日志可供 awstats 使用。

相关内容