是否可以配置 Apache 以可靠地生成与 IIS 生成的访问日志相同的 W3C 扩展格式的访问日志?我似乎无法找到诸如分隔符、字段格式等具体内容的详细描述。毫无疑问,有一个 Apache 日志格式字符串可以做到这一点,但我没有足够的信息来创建,甚至不确定它是否可以以正确的格式写入数据。
我正在使用不支持自定义日志文件格式的 Web 访问日志分析器 (SmarterStats) - 它仅支持通用日志格式或 W3C 扩展格式。不幸的是,CLF 的数据非常有限,因此无法进行特别有趣的分析。
答案1
这W3C 扩展日志文件格式允许您在日志顶部的元数据中定义一组字段。IIS 6 的默认设置似乎是:
#Fields: date time c-ip cs-username s-ip s-port cs-method cs-uri-stem cs-uri-query sc-status cs(User-Agent)
您应该检查您的 IIS 日志以查看是否是这种情况(以及您的解析器期望什么) - 查找#Fields
顶部的行。
LogFormat
您可以使用类似下面的行来生成这种格式的 Apache 日志:
LogFormat "%{%Y-%m-%d %H:%M:%S}t %a %u %A %p %m %U %q %>s \"%{User-agent}i\"" w3c_extended
CustomLog /var/log/apache2/extended_access_log w3c_extended
(我目前无法测试这一点:如果您尝试的话,请编辑帖子或发表评论)。
查看Apache 的自定义日志格式看看我是如何得出这个结论的。
答案2
有这个 sourceforge项目