我有一个网站,上面托管着很多文档文件(PDF、XLS 等)。我经常收到要求统计特定文件每月下载量的请求。以前,我只是使用 sed、awk 和其他工具从 apache 日志中 grep 所需文件名以及包含“GET”和 200 状态代码的条目,然后将整个内容传输到 wc。
人们现在想要回顾多年日志的历史记录。梳理日志文件需要大量时间和资源。我想知道是否有 apache mod 或类似的东西可以将这些 GET 请求记录到数据库中?
答案1
进行点击跟踪...并将您想要的点击记录到数据库中。对于回溯和从日志中收集,我帮不上什么忙。
点击的简单 js 函数将记录该信息。
在您的页面上包含此功能,将所有这些请求发布到 php 文件:
$('a').bind('click', function() {
//alert('User clicked on "foo."');
var e_name = this.name;
var curr_url = document.URL;
var to_url = this.href;
$.ajax({
type: "POST",
url: "inc/trackit.php",
data: { name: e_name, url: curr_url, to_url: to_url, uid: uid }
}).done(function( msg ) {
//alert( "Data Saved: " + msg );
});
});
实际发布到数据库的 php 文件可能如下所示:
<?
include "db_con.php";
$e_name = $_POST['name'];
$curr_url = $_POST['url'];
$to_url = $_POST['to_url'];
$uid = $_POST['uid'];
$track = mysql_query("
INSERT INTO logs (uid, name, url, to_url, create_date)
VALUES ('$uid','$e_name','$curr_url','$to_url' ,now())
");
?>
现在,只要您的所有链接都有“名称”标签,它们就会被记录下来。