【发布时间】:2012-01-24 11:42:18
【问题描述】:
希望这里有人可以帮助我 - 基本上我有一个正在更新的日志记录类(很久以前制作的),我想确保它在 98-99% 的情况下记录消息。但是现在它不处理 exit()s,它基本上只是在每次向记录器发送消息/错误时写入文件(打开、写入和关闭)。
处理 exit() 并在磁盘写入方面高效的最佳方法是什么?现在我正在查看记录器类中的 __destruct(其中调用了 fopen、fwrite 和 fclose),但是我不太确定这是否安全或有效。
编辑:set_error_handler() 呢?我记得几年前读到这很慢,而且对于自定义错误/消息(如 SQL 问题)不是很好
【问题讨论】:
-
那么问题是如果您在脚本中使用
exit()或die(),如何调用您的记录器? -
也可以考虑
file_put_contents()而不是fopen()、fwrite()、fclose()。 -
肖恩的答案就是您要找的。实现
register_shutdown_function应该可以帮助您,而无需更改大部分代码。