很多站长朋友们都不太清楚php日志记录插件,今天小编就来给大家整理php日志记录插件,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php实现日志管理(记录用户操作)原理 2、 怎么在PHP脚本里面加上日志记录语句 3、 如何开启PHP日志功能? 4、 php monolog 怎么把请求的url,ip,参数这些记录到日志中 php实现日志管理(记录用户操作)原理把日志需要保留的数据用json串或xml等数据结构的方式存储起来,调用的时候直接解析这些数据结构即可。
按简单的理解,给各模块的关键步骤起个操作名字,记录一下该操作名,时间,用户,IP等就完了。
单入口模式,这样只需要往index.php加入write_log功能就好了。
至于哪个字段,原值,新值,这个没什么好方法啊,可以引入插件机制,
开个类存储插件方法,命名以module_task为准,比如以上的url就是article_update
那么这个插件类就是
class plugin
{
public $extraLog;
function article_update($field,$old,$new)
{
self::$extraLog = array('字段'=>$field,'原值'=>$old,'新值'=>$new);
}
}
这个方法在流程页面进行数据库操作的地方调用,index.php的write_log流程只读plubin::$extraLog,循环然后和其它信息一起入库或文件。
怎么在PHP脚本里面加上日志记录语句很简单,你把写日志的写成个类就ok
每次发送成功就调用一下:
class Userlog
{
// instance vars
var $userName;
var $logTime;
var $operate;
/*********************************************************************
** constructor **/
function Userlog()
{
}
/** **
*********************************************************************/
function writeLog()
{
global $config;
$query = "insert into ".$config['user_log']." (user, time, operate, opt_ip) values('".$this -> userName."','".$this->logTime."','".$this->operate."','".$_SESSION["UserIP"]."')";
mysql_query($query);
}
/*********************************************************************
** public methods **/
}
当然你在调用前要连接数据库
如何开启PHP日志功能?在php编程中,对于一些访问没有明显错误提示的php页面,可以通过error_log来做进一步的判定。
但出于种种原因,有些服务器并没有开启PHP的error_log功能。
测试或其它需要时,可以打开一下,方法如下。
编辑php.ini,将log_errors设置为on:
log_errors = On
然后,重启apache即可。
如成功开启,就可以跟踪到对应的错误提示:
[Mon Sep 24 16:57:01 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line 2
[Mon Sep 24 16:57:02 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line 2
[Mon Sep 24 16:57:03 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line 2
[Mon Sep 24 16:57:04 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line
另外,注意在Windows环境下,除了将log_errors设置为on外,还需要定义error_log的路径及文件名:
error_log = d:/temp/error.log
(此目录需要授予php标识用户的修改权限,否则日志文件无法生成)
IIS没有error_log的概念,所以需要另外定义。
php monolog 怎么把请求的url,ip,参数这些记录到日志中Monolog是php下比较全又容易扩展的记录日志组件。目前有包括Symfony 、Laravel、 CakePHP等诸多知名php框架都内置了Monolog。
Monolog可以把你的日志发送到文件,sockets,收件箱,数据库和各种web服务器上。一些特殊的组件可以给你带来特殊的日志策略。
使用例子
1 2 3 4 5 6 7 8 9 10 11 12<?php use Monolog/Logger; use Monolog/Handler/StreamHandler; // create a log channel $log = new Logger('name'); $log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING)); // add records to the log $log->addWarning('Foo'); $log->addError('Bar');核心概念
每个Logger实例都有一个通道和日志处理器栈。每当你添加一条日志记录,它会被发送到日志处理器栈。 你可以创建很多Logger,每个Logger定义一个通道(db,请求,路由),每个Logger有很多日志处理器。这些通道会过滤日志。
每个日志处理器都有一个Formatter(内置的日志显示格式处理器)。你还可以设定日志级别。
日志级别
DEBUG:详细的debug信息
INFO:感兴趣的事件。像用户登录,SQL日志
NOTICE:正常但有重大意义的事件。
WARNING:发生异常,使用了已经过时的API。
ERROR:运行时发生了错误,错误需要记录下来并监视,但错误不需要立即处理。
CRITICAL:关键错误,像应用中的组件不可用。
ALETR:需要立即采取措施的错误,像整个网站挂掉了,数据库不可用。这个时候触发器会通过SMS通知你,
关于php日志记录插件的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php日志记录插件 phpstudy日志的详细内容...