教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 记录Log日志的php自定义函数

记录Log日志的php自定义函数

发布时间:2015-09-30   编辑:jiaochengji.com
自己实现的php自定义函数,用于记录Log日志,对某些没有开启日志记录功能的服务器来说,用自己写的代码来记录日志,是唯一且无奈的选择,不过办法总比困难多。

希望本代码,可以帮助到大家。

有关php记录日志的文章,大家还可以参考下这二篇:
快速记录日志的php自定义函数
php记录错误日志

实现代码如下:
 

复制代码 代码示例:

<?php
/**
  记录Log日志的函数
  by www.jbxue.com
*/
/* 用户定义变量 */
$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 $size\n";

write_to_log($log);
?>

您可能感兴趣的文章:
Laravel 集成的 Monolog 库对日志进行配置和记录实例
php 日志记录的自定义函数
记录Log日志的php自定义函数
关于PHP框架中日志系统的详解
PHP 错误与异常的日志记录
PHP 框架中的日志系统
快速记录日志的php自定义函数
Servlet Tomcat如何输出日志?
php将日志写进syslog文件的方法分享
Linux日志服务介绍和日志服务器配置

[关闭]
~ ~