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