Apache的错误日志和访问日志的切分自定义记录

  •   
  • 3757
  • Linux
  • 10
  • super_dodo
  • 2015/04/03

默认情况下,我们配置好PHP的环境后。apahce的默认开启了错误日志(error_log)和访问日志(access_log)。默认只放一个站点是足够的了。也可以常常去看看日志记录是否正常。尤其是错误日志。有时候访问日志对运营分析也很重要,当运营者希望看到访问日志记录的时候。开启apache的访问日志是非常简单便捷省事的。当然你也可以自己写访问日志记录到数据库里面,甚至还可以考虑引入统计插件(譬如百度统计等).但是access_log的开启和配置是很有必要的。

多站点配置,在httpd-vhosts.conf里面.直接上代码

#这个是简洁版本--配置文件自带的。
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "c:/Apache24/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error.log"
    CustomLog "logs/dummy-host.example.com-access.log" common
</VirtualHost>


#Yii版本的配置项
<VirtualHost *:80>
    DocumentRoot "D:\wamp\www\dodobook\www.dodobook.me"
    ServerName   my-www.dodobook.me
	ServerAlias  my-www.dodobook.me
	ErrorLog "logs/www.dodobook.me-error.log"
    CustomLog "logs/www.dodobook.me-access.log" common
   <Directory "D:\wamp\www\dodobook\www.dodobook.me">
		Options Indexes FollowSymLinks
		AllowOverride None
		Order allow,deny
		Allow from all
   </Directory>
   RewriteEngine On
   RewriteRule ^(/assets|/css|/images|/themes|/file|/ueditor|/js|/favicon\.ico|/crossdomain\.xml|/upload).* $0 [L]
   RewriteCond %{QUERY_STRING} ^(.*)$
   RewriteRule ^([^\?]*)$  /index.php$1?%1 [L]
</VirtualHost>

到这里基本上算是配置OK啦。请重启apahce服务.同时访问几个页面后去apahce的目录下寻找logs/下寻找你的日志记录.

对于一些大规模的网站,会需要对日志进行按日期切割,以防当个日志太庞大,影响效率。为了让apache每天都创建一个新的日志文件,按日来滚动日志,于是把Apache服务器的日志记录方式配置修改了一下:

CustomLog "logs/%Y%m%d.log 86400" common 

其中86400=60*60*24 是一天的秒数,表示每过1天就rotate一次日志。日志存放在/var/logs/目录,文件名格式是20150403.log的格式。

#这只是抛砖引玉--我本地测试该方法无效,是因为Apache版本的原因还是配置的原因等待查实。
#主配置文件中的使用方法
ErrorLog "|bin/rotatelogs -l logs/error_%Y%m%d.log 86400"
CustomLog "|bin/rotatelogs -l logs/access_%Y%m%d.log 86400" combined

#虚拟主机配置文件中的使用方法
ServerAdmin webmaster@localhost
DocumentRoot "E:/htdocs"
ServerName localhost
ErrorLog "|bin/rotatelogs -l logs/localhost/error_%Y%m%d.log 86400"
CustomLog "|bin/rotatelogs -l logs/localhost/access_%Y%m%d.log 86400" combined

时不时冒个泡,万一有人看上我呢,猿粪这种事谁也说不清