2

我想在 apache 错误日志中记录来自我的 php 应用程序的一些消息。但我希望这仅发生在非生产环境中。

我发现 php 必须error_log将消息记录到错误日志文件中,但是如果我的应用程序在非生产环境中运行,我如何控制它只记录。

另外,我发现有trigger_error一个error type参数。然后 php.ini 中的error_reporting设置可以决定实际记录哪些错误类型。因此,在开发中,我将 error_reporting 设置为E_ALL,但在生产中受到更多限制。所以,现在我可以使用 trigger_log 并始终登录E_USER_NOTICE. 这意味着我的消息仅显示在开发日志文件中,而不显示在生产日志文件中。

但是,trigger_error 还会为每个日志生成一个堆栈跟踪,这对我来说有点不必要。如何禁用此堆栈跟踪。

另外,我做事的方式是否正确。人们通常如何处理这个问题。

编辑: 我不是试图抑制错误消息。我正在尝试在 dev中提供更多调试消息。诸如“请求带有以下参数”、“第 1 步完成”等内容。这在生产中实际上是不需要的。

4

2 回答 2

0

首先,抑制错误处理不是一个好主意——错误对你的应用程序性能有很大的影响——而且抑制错误报告并不能消除减速。

PHP 中没有“trigger_log”。

PHP 中的内置错误处理不会生成堆栈跟踪 - 您必须安装自定义错误处理程序。如果你想改变它的行为,你需要找到它并修改代码。

使用 'trigger_error' 记录调试事件是一个非常糟糕的主意。

于 2013-09-13T12:23:35.050 回答
0

如果您只想手动将自定义消息发送到错误日志中,log_error()那么您正在寻找的功能。

于 2013-09-13T12:35:00.430 回答