当前位置:  开发笔记 > 编程语言 > 正文

如何在PHP中记录未捕获的异常?

如何解决《如何在PHP中记录未捕获的异常?》经验,为你挑选了2个好方法。

我已经找到了如何将错误转换为异常,并且如果它们没有被捕获我会很好地显示它们,但我不知道如何以有用的方式记录它们.简单地将它们写入文件将没有用,是吗?当你不知道导致异常的原因时,你会冒险访问数据库吗?



1> Ross..:

您可以使用set_error_handler设置自定义异常以记录错误.我个人考虑将它们存储在数据库中,因为默认的Exception处理程序的回溯可以提供导致它的原因的信息 - 当然,如果数据库处理程序触发了异常,这当然是不可能的.

您还可以使用error_log记录错误.它有多种消息目的地,包括:

引自error_log

    PHP的系统记录器,使用操作系统的系统日志记录机制或文件,具体取决于error_log配置指令的设置.这是默认选项.

    通过电子邮件发送到destination参数中的地址.这是唯一使用第四个参数extra_headers的消息类型.

    附加到文件目标.换行不会自动添加到消息字符串的末尾.

编辑:markdown是否有下划线的noparse标签?



2> Tom Mayfield..:

我非常喜欢使用log4php进行日志记录,即使它尚未进入孵化器.我几乎可以使用log4net,并且发现这种风格对我来说非常自然.

关于系统崩溃,您可以将错误记录到多个目的地(例如,具有阈值为CRITICAL或ERROR的追加器仅在出现问题时才起作用).我不确定现有的appender是如何失败安全的 - 如果数据库关闭了,那个appender怎么会失败? - 但你可以很容易地编写自己的appender,如果它无法登录就会优雅地失败.

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有