Apache 日志的配置

    对于大访问量的网站,日志不可能只记录在一个文件里面,1万日志大概就有50M,还有一个可能就是你要跟踪用户的行为,可能需要一些额外的信息,怎么把这些东西记录到apache日志里面。apache提供了很出色的日志配置方式,具体的配置可以参考:http://httpd.apache.org/docs/2.0/logs.html 我这里只是简单的举一些例子。
   1。问题一:实现按照小时记录日志:
   apache 自带有一个rotatelogs 可以实现这个功能,查看一下他的help就知道使用的方法了。
   Usage: rotatelogs [-l] <logfile> {<rotation time in seconds>|<rotation size in megabytes>} [offset minutes from UTC]
先看下面的例子:
<VirtualHost *:80>
    ServerAdmin webmaster@myhost.com
    DocumentRoot /home/web/www
    ServerName myhost.com
<Directory "/home/web/www">
    Options Indexes FollowSymLinks
    AllowOverride all
    Order allow,deny
    Allow from all
</Directory>
CustomLog "|bin/rotatelogs logs/myhost_access_log_%Y_%m_%d_%H.log 3600 480" common
</VirtualHost>
logs/pma_access_log_%Y_%m_%d_%H.log  是文件名字,可以用占位符。
3600 表示的是每个小时记录一次,这个单位是s
480  表示和UTC时间差的分钟数目,我们是东八区要比他们早480分钟。

2.问题2,我要记录一个用户的客户端的信息,并且每次用户访问,我都自动在浏览器里面写一个cookie,及时发现恶意攻击或者用于广告系统中防止作弊。
首先启用apache 自带的user track 把 LoadModule usertrack_module modules/mod_usertrack.so前面的#去掉。
linux用户的话,没有这个模块,那么就重新编译一下。
配置如下的虚拟主机:
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.domain
    DocumentRoot D:/web/htdocs
    ServerName localhost.com
    CookieTracking on
    CookieDomain .localhost.com
    CookieExpires "1 days"
    CookieStyle Cookie
<Directory "D:/web/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride all
    Order allow,deny
    Allow from all
</Directory>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" \"%{Cookie}i\"" mylogconfig
CustomLog "|bin/rotatelogs logs/pma_access_log_%Y_%m_%d_%H.log 3600 480" mylogconfig
</VirtualHost>

 CookieTracking on
 CookieDomain .localhost.com
 CookieExpires "1 days"
 CookieStyle Cookie
这四句是设置cookie的属性的。
这一句是设置日志的属性:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" \"%{Cookie}i\"" mylogconfig
日志的名字叫做mylogconfig。
posted @ 2008-06-28 12:46  暮夏  阅读(2367)  评论(0编辑  收藏  举报