日期:2014-05-17  浏览次数:20432 次

求 php管理实现详细操作日志的制作思想!!
要做一个系统,要求系统内的每一步操作,每一个数字的添加修改删除都要记录到'日志'系统内,并且以最友好的界面给客户看。

以前做都是直接把模块名,表名和sql语句记录进去就完了,现在这种要求脑子有点乱。因为系统比较复杂,其中还有ajax的一些东西的选择操作。假如不用sql形式记录,真不知道怎么做才好。

请高手给个思路吧。谢谢了~~~~~~~~~~

------解决方案--------------------
直接就是每当进行insert、update、delete的时候就将你想记录的信息插入到数据库不就行了么?
------解决方案--------------------
探讨
界面还好说了。我说的是实现思想。

1楼的没看懂,如果记录,insert,update,delete我早就做了。 客户又不懂sql,他的员工执行了错误的操作,要以在哪个模块,哪天,哪个员工,哪个字段,原值,新值这种思想来做日志系统,就不能像以前一样记录sql.

而好多产品的表都是多对多的关联关系做的数据库结构...所以才头疼.

------解决方案--------------------
客户最想知道的是,什么时候在系统内做过了什么,结果是如何。
代码结构要好,访问每个页面都可以知道是什么模块,做什么操作,至于哪个人,就是登录的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,循环然后和其它信息一起入库或文件。