Laravel数据库日志 - 什么是最佳实践

时间:2014-09-18 10:23:49

标签: php mysql logging laravel pdo

我认为我有一个非常普遍的问题,但我找不到任何"最佳做法"回答它。

我为客户开发了许多基于自制框架的小型网络应用程序。这些应用程序仅在非常特定的业务相关环境中使用,它们在一年中被平均十个用户用于像mounth这样的东西。

每个应用都有一个非常不同的目的和"技术"它背后(有时是它的Zend模块,TCPDF等......)。当然,偶尔用户会发现一些小错误(没有处理异常,没有设置数组......)。

问题是,用户几天或几周都不会进行沟通,所以当我需要调试时,有时候我不会拥有我需要的所有信息(比如,如何重现它,它是哪条路线等等。)。

对于我自己制作的框架(非常类似Laravel),我创建了一些处理这些错误的函数(使用set_error_handler,register_shutdown_function,...)。基本上这些函数将在客户端的MySQL数据库中创建一些日志条目。

我将这些功能用于两个目的:

  1. 记录用户操作和php错误+上下文(路由,控制器,一些数据流,php预定义变量,......)
  2. 当出现问题时(通过邮件,短信等方式向我发出警告......)
  3. 我能够分析所有这些日志高效的唯一方法就是当他们在数据库中时(我有一个JQuery表,他们为了更快的阅读和跟踪而优化它们)。否则,我只会使用文本文件,但我无法快速分析它们(信息太多)。

    问题

    我刚开始与Laravel开展一个项目(现在我将用于我的所有项目),经过一些文档阅读后我发现Laravel使用Monolog进行日志记录。但是,Monolog没有PDO处理程序,有些人可能会说使用MySQL作为日志是一个非常糟糕的主意(Can Laravel 4 log to a MySQL database?),我完全同意它们。但是,这是我在很多小项目工作时能够进行有效的错误修正的唯一方法,只需要有限的时间专注于它。

    注意:我的客户只有MySQL,我没有时间使用单元测试(小公司,没有钱)。

    我的问题是否有更好的解决方案(以结构化方式记录用户活动和php错误,捕获错误时发送邮件/短信通知)使用一些我不知道的Laravel魔法?< /强>

1 个答案:

答案 0 :(得分:3)

当然,有许多工具可以为您监控日志文件,然后将它们整理成有意义的信息。他们可以对类似的错误进行分组,并为您提供有关导致它们的请求类型的详细数据。更好的是,您可以选择传递用户数据和错误,这样您就可以确切地看到导致问题的原因。

以下是我在时间中遇到的一些