为什么我的apache日志丢失信息?

我有一个启用SSL的Apache服务器,它使用循环日志来归档日志文件。 问题是,当日志“旋转”,一些信息会丢失…

例如,所有经过身份validation的用户名都缺失。

ssl_access_log会logging:

  • “GET /favicon.ico HTTP / 1.1”404 292“ http://website.com ”“Mozilla / 5.0(Windows; U; Windows NT 5.1; en-US; rv:1.9.1.1)Gecko / 20050729 Firefox / 3.5.2(.NET CLR 3.5.30729)“

但旋转的日志只会存档:

  • “GET /favicon.ico HTTP / 1.1”302 303“ – ”“Mozilla / 5.0(Windows; U; Windows NT 5.1; zh-CN)美国; rv:1.9.1.1)Gecko / 20050729 Firefox / 3.5.2(.NET CLR 3.5.30729)“

这里是我的httpd.conf文件的设置:

为了旋转..

  • CustomLog“| / usr / sbin / rotatelogs / etc / httpd / logs / ssl_access 604800”合并

对于我的虚拟主机https端口指令 ..

  • LogFormat“%h%l%u%t \”%r \“%s%b \”%{Referer} i \“\”%{User-Agent} i \“”
  • TransferLog logs / ssl_access_log

为什么authentication的用户没有login轮转的日志?

这表明您的configuration有其他问题。 有一个提示TransferLog logs / ssl_access_log -directive是在一个虚拟主机定义中,而旋转的日志不是。 由于ssl_access_log日志通过身份validation的用户和旋转日志不,我猜测服务轮转日志应用到实际上没有任何身份validationconfiguration。

另一件事是这些日志实际上logging了两个不同的http请求。 轮转日志中的请求已获得302响应,redirect到其他地方。 ssl_access_log中的请求得到了404,一个未find的响应。 另一个请求可能是浏览器获取302的结果,然后尝试从其他地方获取它,但也可能是其他的东西。

总之,这些日志正在logging不同的虚拟主机。 redirect的原因可能是您的服务器的规范名称设置,重写规则或其他内容,这些信息是不可能说的。