求 php管理实现详细操作日志的制作思想!!
要做一个系统,要求系统内的每一步操作,每一个数字的添加修改删除都要记录到'日志'系统内,并且以最友好的界面给客户看。
以前做都是直接把模块名,表名和sql语句记录进去就完了,现在这种要求脑子有点乱。因为系统比较复杂,其中还有ajax的一些东西的选择操作。假如不用sql形式记录,真不知道怎么做才好。
请高手给个思路吧。谢谢了~~~~~~~~~~
------解决方案--------------------
直接就是每当进行insert、update、delete的时候就将你想记录的信息插入到数据库不就行了么?
------解决方案--------------------
------解决方案--------------------客户最想知道的是,什么时候在系统内做过了什么,结果是如何。
代码结构要好,访问每个页面都可以知道是什么模块,做什么操作,至于哪个人,就是登录的user咯。
比如你的url是否能像类似这样
http://project/index.php?module=article&task=update
单入口模式,这样你只需要往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,循环然后和其它信息一起入库或文件。