我有一个非常普遍的问题,但我找不到任何“最佳实践”答案。
我为我的客户开发了许多基于自制框架的小型Web应用程序。这些应用程序仅在非常特定的业务相关上下文中使用,在一年中的某个月份由平均十个用户使用。
每个应用程序都有非常不同的目的和“技术”背后(有时是Zend模块、TCPDF等)。当然,偶尔用户会发现一些小错误(未处理的异常、未设置的数组等)。
问题是,用户可能会几天或几周不与我沟通,因此当我需要调试时,有时我没有所有所需的信息(例如如何重现它、哪个路由、等等)。
对于我的自制框架(非常类似于Laravel),我编写了一些处理这些错误的函数(使用set_error_handler、register_shutdown_function等)。基本上,这些函数将在客户的MySQL数据库中创建一些日志条目。
我使用这些功能有两个目的:
1. 记录用户操作和php错误+上下文(路由、控制器、一些数据流、php预定义变量等) 2. 当出现问题时提醒我(通过电子邮件、短信等方式)
唯一能够有效分析所有这些日志的方法是将它们存储在数据库中(我有一个 JQuery 表格来优化快速阅读和跟踪)。否则,我只能使用文本文件,但我不能如此快速地分析它们(信息太多)。
问题:
我刚开始使用 Laravel(我将在所有项目中使用它),在阅读一些文档后,我发现 Laravel 使用 Monolog 进行日志记录。但是,Monolog 没有 PDO 处理程序,有些人可能会说使用 MySQL 进行日志记录是一个非常糟糕的主意( Can Laravel 4 log to a MySQL database?),我完全同意他们的观点。但这是我找到的唯一一种在工作时间有限的情况下高效解决 bug 的方法。
注:我的客户只有 MySQL,我没有时间使用单元测试(小公司,没有资金)。 是否有更好的解决方案可以通过某些 Laravel 魔法解决我的问题(以结构化方式记录用户活动和 php 错误,并在捕获错误时通过邮件/短信通知)?
我为我的客户开发了许多基于自制框架的小型Web应用程序。这些应用程序仅在非常特定的业务相关上下文中使用,在一年中的某个月份由平均十个用户使用。
每个应用程序都有非常不同的目的和“技术”背后(有时是Zend模块、TCPDF等)。当然,偶尔用户会发现一些小错误(未处理的异常、未设置的数组等)。
问题是,用户可能会几天或几周不与我沟通,因此当我需要调试时,有时我没有所有所需的信息(例如如何重现它、哪个路由、等等)。
对于我的自制框架(非常类似于Laravel),我编写了一些处理这些错误的函数(使用set_error_handler、register_shutdown_function等)。基本上,这些函数将在客户的MySQL数据库中创建一些日志条目。
我使用这些功能有两个目的:
1. 记录用户操作和php错误+上下文(路由、控制器、一些数据流、php预定义变量等) 2. 当出现问题时提醒我(通过电子邮件、短信等方式)
唯一能够有效分析所有这些日志的方法是将它们存储在数据库中(我有一个 JQuery 表格来优化快速阅读和跟踪)。否则,我只能使用文本文件,但我不能如此快速地分析它们(信息太多)。
问题:
我刚开始使用 Laravel(我将在所有项目中使用它),在阅读一些文档后,我发现 Laravel 使用 Monolog 进行日志记录。但是,Monolog 没有 PDO 处理程序,有些人可能会说使用 MySQL 进行日志记录是一个非常糟糕的主意( Can Laravel 4 log to a MySQL database?),我完全同意他们的观点。但这是我找到的唯一一种在工作时间有限的情况下高效解决 bug 的方法。
注:我的客户只有 MySQL,我没有时间使用单元测试(小公司,没有资金)。 是否有更好的解决方案可以通过某些 Laravel 魔法解决我的问题(以结构化方式记录用户活动和 php 错误,并在捕获错误时通过邮件/短信通知)?
AbstractProcessingHandler
类并实现write()
方法即可。查看其他处理程序以了解它们如何实现,然后自己实现PDO版本(看起来应该很容易)。 - Sverri M. Olsen