我想在apache错误日志中记录我的php应用程序中的一些消息。但我希望这只发生在非生产环境中。
我发现php有error_log
将消息记录到错误日志文件中,但是如果我的应用程序在非prod环境中运行,如何控制它只记录。
另外,我发现trigger_error
有一个error type
参数。然后,php.ini中的error_reporting
设置可以决定实际记录哪些错误类型。因此,在dev中,我将error_reporting设置为E_ALL
,它在生产中受到更多限制。所以,现在我可以使用trigger_log并始终登录E_USER_NOTICE
。这意味着我的消息仅显示在开发日志文件中,而不显示在生产日志文件中。
但是,trigger_error还会生成每个日志的堆栈跟踪,这对我来说有点不必要。如何禁用此堆栈跟踪。
另外,我是以正确的方式做事。人们通常如何处理这个问题。
编辑: 我不是要压制错误消息。我想在dev 中提供更多 debug 消息。诸如“请求带有以下参数”,“步骤1完成”等等。生产中实际上不需要这样做。
答案 0 :(得分:0)
首先,抑制错误处理不是一个好主意 - 错误会对您的应用程序性能产生巨大影响 - 并且抑制错误报告并不能消除速度下降。
PHP中没有'trigger_log'。
PHP中的构建错误处理不会生成堆栈跟踪 - 您必须安装自定义错误处理程序。如果你想改变它的行为,你需要找到它并修改代码。
使用'trigger_error'来记录调试事件是一个非常糟糕的主意。
答案 1 :(得分:0)
如果您只想将自定义消息发送到错误日志手动,log_error()
就是您要查找的功能。