我想使用自定义异常处理程序(使用set_exception_handler()
函数设置)来控制在发生未处理的异常时打印给用户的内容。
不幸的是,在这种情况下,异常没有记录到php错误日志中,我不想编写自己的日志记录代码,因为自动异常日志记录对我来说绝对没问题。
问题是:
如果执行自定义异常处理程序,是否有办法使PHP日志异常(默认情况下)?如果没有,有没有办法登录主php错误日志文件?
答案 0 :(得分:2)
如果执行了自定义异常处理程序,是否有办法使PHP日志异常(默认情况下)?
不,不是来自PHP提供的内容(例如,在回调中返回FALSE
)。
如果没有,有没有办法登录主php错误日志文件?
是的,您可以使用error_log
Docs功能。 Exception
Docs应包含消息以及文件名和行号。我手边没有任何代码,否则我已添加/链接它。
一个或多或少的脏技巧(但我不确定它是否保留原始文件名和行号)是创建一个始终保留在内存中的异常捕获对象。如果它捕获一个未捕获的异常,它将处理并存储它。在破坏的情况下(在过程结束时)它可以重新抛出它。然后PHP需要处理它并可能记录它。不过我会考虑实验。