lizongbo at 618119.com 工作,生活,Android,前端,Linode,Ubuntu,nginx,java,apache,tomcat,Resin,mina,Hessian,XMPP,RPC

2007年12月6日

给wordpress加上记录Combined格式日志的功能

Filed under: Apache,Web Server — 标签:, , , , — lizongbo @ 18:23

由于我是合租的web主机,因此开通的ftp里没权限看到站点的access.,

由于wordpress是通过.htaccess中配置的urlrewrite将http请求重定向到index. 这个入口,

因此只要在index.php里加上记录日志的操作,基本上大部分请求都可以记录下来,

查了下资料,没看见现成的代码,于是对照着 Combined各式的日志,

自己写了一段代码来实现这个功能.

代码如下:

[code]

<?php
/* Short and sweet */
define(‘WP_USE_THEMES’, true);
/**
为我的wordpress增加记录web日志的功能
author: lizongbo
site: http://618119.com
*/

$webaccesslog=”webaccess”.gmdate(“Y-m-d”).”.log”;
$accesslog=$_SERVER[‘REMOTE_ADDR’].” – – “.gmdate(“[d/M/Y:H:i:s +0800] “);
$accesslog=$accesslog.”\””.$_SERVER[“REQUEST_METHOD”].” “.$_SERVER[“REQUEST_URI”].” “;
$accesslog=$accesslog.$_SERVER[“SERVER_PROTOCOL”].”\””;
$accesslog=$accesslog.” 200 2007 \””;
if(!empty($_SERVER[“HTTP_REFERER”])){
$accesslog=$accesslog.$_SERVER[“HTTP_REFERER”];
}else{
$accesslog=$accesslog.”-“;
}
$accesslog=$accesslog.”\” \””.$_SERVER[“HTTP_USER_AGENT”].”\””.”\r\n”;
$webaccess=fopen($webaccesslog,”a”);
fwrite($webaccess,$accesslog);
/*下面的写法 io 操作太多,被废弃了
fwrite($webaccess,$_SERVER[‘REMOTE_ADDR’]);
fwrite($webaccess,” – – “);
fwrite($webaccess,gmdate (“[d/M/Y:H:i:s +0800] “));//不知道怎么加时区,于是写死了
fwrite($webaccess,”\””);
fwrite($webaccess,$_SERVER[“REQUEST_METHOD”]);
fwrite($webaccess,” “);
fwrite($webaccess,$_SERVER[“REQUEST_URI”]);
fwrite($webaccess,” “);
fwrite($webaccess,$_SERVER[“SERVER_PROTOCOL”]);
fwrite($webaccess,”\””);
fwrite($webaccess,” 200 2007 \””);//强行写死了状态码和内容长度
if(!empty($_SERVER[“HTTP_REFERER”])){
fwrite($webaccess,$_SERVER[“HTTP_REFERER”]);
}else{
fwrite($webaccess,”-“);
}
fwrite($webaccess,”\” \””);
fwrite($webaccess,$_SERVER[“HTTP_USER_AGENT”]);
fwrite($webaccess,”\””);
fwrite($webaccess,”\r\n”);
*/

fclose($webaccess);
require(‘./wp-blog-header.php’);
?>

[/code]

这样,记录下来的日志就可以通过ftp下载到本地,然后再用 awstats 进行分析了.

没有评论

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress