在PHP中,如何在不使系统变慢的情况下记录事务处理?

时间:2012-12-11 07:04:21

标签: php mysql logging

我正在尝试在系统中添加特定交易流程的日志记录,以帮助我们跟踪客户遇到问题的位置

 e.g
 2012-12-11 05:35:11 pm : Chose PayPal as payment method
 2012-12-11 05:38:15 pm : Pay = transaction id: E547HGf915JMN
 2012-12-11 05:44:23 pm : Payment processed PayPal payment status = Completed
 2012-12-11 05:45:17 pm : Saved transaction
 2012-12-11 05:47:22 pm : Redirect = http://domain.com/redirect_url/

我应该通过文本文件还是MySQL使用日志记录?我正在考虑使用文本文件,因为触发器往往会减慢数据库的速度,从长远来看会更难维护?

您是否有记录事件/流程的任何建议或首选方式?

非常感谢你。

3 个答案:

答案 0 :(得分:3)

了解Monolog:https://github.com/Seldaek/monolog

您可以轻松登录到创建日志文件的流。但是,如果您将来需要更改它,您几乎可以毫不费力地进行更改。使用composer(http://getcomposer.org/doc/01-basic-usage.md)在项目中安装它非常容易。

如果您需要非常快的东西,可以创建一个ram磁盘并将日志文件放入其中,或使用syslog和ramlog(http://www.tremende.com/ramlog/index.htm)

答案 1 :(得分:2)

记录到文本肯定会使用比mysql更少的资源。

查看KLogger。它似乎可以完成这项工作。

http://codefury.net/2008/07/klogger-a-simple-logging-class-for-php/

答案 2 :(得分:1)

根据我的经验,您必须使用text file来记录特定的事务进程,因为这样会更安全,并且不会在Mysql服务器上产生问题。