用PHP生成自己的LOG文件

如果你的服务器不容许你读他的LOG文件,那你只好停下来分析你的访问者?做你自己的LOG文件吧!
  你仅需做的事情是用PHP计算实际的点击次数,没有错误,没有象'304 Not Modified' 和 'Internal Server Error' 一样的错误。你的代码将生成自己的LOG文件。

<?php

/* 用户定义变量 */
$logfile = "clf.log"; /*LOG文件写到那里 */
$timezone = "+0100"; /* Timezone correction */
$lookup_size = true; /* 设置文件的权限 */
$document_root = "/usr/local/apache/share/htdocs";

/* 他可能或不可能对相同的客户端记数
* 一定要对$document_root 这个变量进行设置才可以工作
*/

function write_to_log($str) {
if($fd = @fopen($GLOBALS[ "logfile"], "a")) {
fputs($fd, $str);
fclose($fd);
}
}

function get_var($name,$default) {
if($var = getenv($name)) {
return $var;
} else {
return $default;
}
}

if($remote_host = get_var( "REMOTE_HOST", false)) {
$remote_host = get_var( "REMOTE_ADDR", "-");
}
$remote_user = get_var( "REMOTE_USER", "-");
$remote_ident = get_var( "REMOTE_IDENT", "-");
$server_port = get_var( "SERVER_PORT", 80);
if($server_port!=80) {
$server_port = ":" . $server_port;
} else {
$server_port = "";
}
$server_name = get_var( "SERVER_NAME", "-");
$request_method = get_var( "REQUEST_METHOD", "GET");
$request_uri = get_var( "REQUEST_URI", "");
$user_agent = get_var( "HTTP_USER_AGENT", "");
if($lookup_size == true && $document_root) {
$filename = ereg_replace( "?.*", "", $request_uri);
$filename = "$document_root$filename";
if(!$size = filesize($filename)) {
$size = 0;
}
} else {
$size = 0;
}

$date = gmdate( "d/M/Y:H:i:s");
$log = "$remote_host $remote_ident $remote_user [$date $timezone] "".
"$request_method http://$server_name$server_port$request_uri" 200 $sizen";

write_to_log($log);
?>

时间: 2024-08-07 19:56:43

用PHP生成自己的LOG文件的相关文章

php-file_put_contents()生成的一个log文件如何限制该文件的大小使其最多能有1M

问题描述 file_put_contents()生成的一个log文件如何限制该文件的大小使其最多能有1M php file_put_contents()生成的一个log文件,如何限制该文件的大小使其最多能有1M 解决方案 函数封装一下,先判断,再写入,满了1M则写入到新文件 解决方案二: 满了1M写入新文件怎么弄啊 解决方案三: file_put_contents是一次性写入的,如果你要写入的内容是10M,那就一次性写入10M,建议用fwrite.

用PHP生成自己的LOG文件_php基础

如果你的服务器不容许你读他的LOG文件,那你只好停下来分析你的访问者?做你自己的LOG文件吧!你仅需做的事情是用PHP计算实际的点击次数,没有错误,没有象'304 Not Modified' 和 'Internal Server Error' 一样的错误.你的代码将生成自己的LOG文件. <?php /* 用户定义变量 */ $logfile = "clf.log"; /*LOG文件写到那里 */ $timezone = "+0100"; /* Timezon

求:每10分钟或log文件达到2M生成一个新的log文件

问题描述 各位大牛们,我现在要做一个功能,需求是这样的,定时记录日志,如果这个log文件达到2M或者中间已经间隔了10分钟,就生成一个新的log文件,要同时满足这两个条件,请问我应该如何实现呢? 问题补充:mercyblitz 写道 解决方案 也容易做,呵呵.左右一个schedule,10分中把内容中的Log record记录到文件中.不过要需要另外一个线程做Check log record的大小,如果超过10M,不管没有没有10分钟都需要flush到文件.解决方案二:定时的话,没有必要做呀!定

php文件调用一个类或方法,生成一个log文件,log文件上输出调用的时间和内容,该怎么写

问题描述 php文件调用一个类或方法,生成一个log文件,log文件上输出调用的时间和内容,该怎么写 php文件调用一个类或方法,生成一个log文件,log文件上输出调用的时间和内容,该怎么写 解决方案 /** 自定义日志 @param string $type @param string $content @return bool */ function mylog($type="",$content=""){ if(!$content || !$type){ r

求一个log文件定时生成功能

问题描述 各位大牛们,我现在要做一个功能,需求是这样的,定时记录日志,如果这个log文件达到2M或者中间已经间隔了10分钟,就生成一个新的log文件,要同时满足这两个条件,请问我应该如何实现呢?问题补充我先顶一个问题补充kimmking 写道 解决方案 zhangyang6380006 写道kimmking 写道zhangyang6380006 写道kimmking 写道zhangyang6380006 写道kimmking 写道lyy3323 写道log4j正解,log4j 重写下 FileA

win7电脑的log文件出现乱码怎么办?

  首先,咱们不妨先来了解一下,什么是log文件,其实log文件严格来说只是系统生成的一种文件,比如说咱们的ghost win7 64位旗舰版下载若是出现程序运行异常或者错误的情况,便会生成这种log文件,除此之外,咱们系统中记录程序运行的也是这种log文件,一般情况下,ghost win7中的log文件是没有什么用处的,因此咱们若是要清理系统垃圾,优化电脑的时候,这种log文件便是可以清理的,不过若是程序出现异常,需要处理故障的话,那么这种log文件便十分有用了,因为咱们可以根据log文件的记

Log文件可以删除吗?

  一.Log文件是什么? log是日志文件,通常是系统或者某些软件对已完成的某种处理的记录,以便将来做为参考,它并没有固定的格式,通常是文本文件,可以用记事本打开以查看内容,当然很可能是其它格式,有些直接打开就是乱码. 一般文本处理软件都可以打开此类型的文件,比如Windwos自带的记事本就可以打开Log文件,Log文件本身没有危害,只是占用多一点点硬盘空间而己.大部分的log可以从文件名看出它的作用,比如uninstall.log或是error.log,当然前者通常是软件安装过程中生成的记录

内存-大的log文件如何转换后用ReportViewer显示

问题描述 大的log文件如何转换后用ReportViewer显示 我需要将特定格式的Log文件解码后,生成统计信息,并用ReportViewer显示给用户. 目前的做法是将文件全部读到内存中去,然后解码转换成一条条记录,存放到一个Table中.然后通过RDLC链接到ReportViewer并显示出来. 这种做法简单,但缺陷是如果log文件很大的话,会占用很多系统内存,而且有把内存耗尽的危险. 恳请高手赏招如何去改进,感谢! 解决方案 http://download.csdn.net/detail

Apache下error.log文件太大的处理方法_Linux

清除error.log.access.log并限制Apache日志文件大小的方法 有个客户反映vps网站打不开,登录系统检查下,客户是win2003系统,发现放置网站文件的D盘已被占满,可用空间为0KB,进去发现客户Apache服务器的错误日志error.log非常的大,造成D盘被爆满. 在网上搜了下相应的资料,并按照如下步骤做了一遍,网站恢复正常 第一步:停止Apache服务的所有进程,删除 Apache2/logs/目录下的 error.log.access.log文件 第二步:打开 Apa