【发布时间】:2013-09-18 03:08:11
【问题描述】:
我想在 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 中提供更多 debug 消息。诸如“请求带有以下参数”、“第 1 步完成”等内容。这在生产中确实不需要。
【问题讨论】:
-
但是你要在生产环境中做什么呢?
-
为什么要在生产中限制 error_reporting?您的程序是否经常产生错误消息?是否考虑过修复它们?
-
@YourCommonSense 查看我的编辑。我真的只是想打印调试消息以简化开发和测试。这里没有要修复的错误。也许 trigger_error 不是解决此问题的正确工具。