0

我想使用自定义异常处理程序(使用set_exception_handler()函数设置)来控制发生未处理异常时向用户打印的内容。

不幸的是,在这种情况下,异常不会记录到 php 错误日志中,我不想编写自己的日志记录代码,因为自动异常记录对我来说绝对没问题。

问题是:
如果执行了自定义异常处理程序,是否有办法使 PHP 日志异常(默认情况下)?如果没有,有没有办法登录到主 php 错误日志文件?

4

1 回答 1

2

如果执行了自定义异常处理程序,有没有办法使 PHP 日志异常(默认情况下)?

不,不是来自 PHP 提供的(例如FALSE在回调中返回)。

如果没有,有没有办法登录到主 php 错误日志文件?

是的,您可以为此使用error_logDocs功能。Exception文档应包含消息以及文​​件名和行号。我手头没有任何代码,否则我已经添加/链接了它。

一个或多或少的肮脏技巧(但我不确定它是否保留原始文件名和行号)是创建一个始终保留在内存中的异常捕获对象。如果它捕获到一个未捕获的异常,它将处理它并存储它。在破坏的情况下(在过程结束时),它可以重新抛出它。然后 PHP 需要处理它并可能记录它。但是我会认为这是实验性的。

于 2012-06-02T22:55:24.557 回答