【问题标题】:How to do extended logging to database with CakePHP?如何使用 CakePHP 对数据库进行扩展日志记录?
【发布时间】:2011-08-10 16:30:29
【问题描述】:

需要登录到数据库表 (logs) 我的应用程序中发生的所有主要操作。例如,操作将是 login/logout, view, add, update, 等。因此,每次有人登录或查看特定记录时 - 都会记录在数据库表中。

我想以尽可能简单的方式从所有控制器中调用该方法——例如logIt($action, $object, $note)——因为这将在每个控制器中散布在各处。它也应该相当有效。

你有什么建议吗?做这样的事情最好的方法是什么?

谢谢各位。来自 CakePHP 新手的问候。

【问题讨论】:

    标签: database cakephp logging


    【解决方案1】:

    您可以在蛋糕中的任何位置(模型、视图、控制器)使用$this->log($data,'log_file');。数据将被记录到 tmp/logs/log_file.log

    如果它需要进入DB,你需要在app_controller中设置一个日志方法,自己加载模型。并在您需要的任何控制器中调用该日志。

    【讨论】:

    • 它确实需要进入数据库。尽管您的提示比我希望的更通用(例如缺少代码):-),但我确实遵循了它们并设法解决了一些问题。我在 app_controller 中添加了一个日志方法,从其他控制器调用它非常简单。谢谢。
    【解决方案2】:

    我个人认为 Anh Phams 的答案更“蛋糕”且可扩展,但如果您需要实时更新该列表,那么我猜您必须将其放入数据库中。

    否则,最好的方法是使用某种custom component,您可以根据需要将其附加到控制器上。当然,您总是可以在 AppController 中创建一个简单的方法,它会加载一个“日志”模型并在您调用它时保存一条记录。

    【讨论】:

      猜你喜欢
      • 2011-03-06
      • 2012-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-11
      • 2016-06-05
      • 2014-04-13
      • 1970-01-01
      相关资源
      最近更新 更多