希望这里有人可以帮助我 - 基本上我有一个我正在更新的日志记录类(很久以前制作的),我想确保它在 98-99% 的情况下记录消息。但是现在它不处理 exit(),它基本上只是在每次向记录器发送消息/错误时写入文件(打开、写入和关闭)。
处理 exit() 的最佳方式是什么,并且在磁盘写入方面效率最高?现在我正在查看记录器类中的 __destruct(其中调用了 fopen、fwrite 和 fclose),但我不太确定这是否安全或有效。
编辑:set_error_handler() 怎么样?我记得几年前读到这很慢,而且对于自定义错误/消息(如 SQL 问题)不是很好
最佳答案
如果你想在脚本结束时记录一些东西,你应该看看 PHP 的 register_shutdown_function()
:
function shutdown()
{
// .. log code here.
}
register_shutdown_function('shutdown');
您应该避免使用 __destruct()
方法,因为无法保证它会在您期望它被调用时被调用。
您还可以查看 PHP 内置的 error_log()
方法,将内容写入实际的 PHP 错误日志文件(这可能比编写您自己的记录器更可靠)。
引用资料:
http://php.net/manual/en/function.register-shutdown-function.php
关于php - 在 PHP 中编写(到文件)记录器的最有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8986244/