在web开发过程中,logging 是非常重要的一环。无论是在上线后排查问题,还是在开发过程中寻找错误,logging都能够帮助我们更好地了解代码的工作情况。所以,如何正确的使用logging是值得我们深入研究的。本文将介绍如何在php中正确的使用logging。
php内置了一个logging工具,叫做php error_log。php error_log可以将错误信息写入服务端的一个文件,方便我们查看。我们可以通过修改php.ini文件中的error_log参数来决定错误信息存储的位置,也可以在代码中灵活的使用error_log函数来定制存储的位置。
PHP的logging默认是向stderr输出,但是我们通常会将它重定向到文件中。比如,我们可以采用如下的方式将错误信息重定向到/var/log/php_errors.log文件中:
error_log("Error description", 3, "/var/log/php_errors.log");上述代码中,第一个参数是错误信息描述,第二个参数是错误信息报告级别,1是警告,2是错误,3是全部错误和警告。最后一个参数是指定存放错误信息的文件路径。 当然,我们在实际开发中不可能一行行的插入error_log。所以,我们可以通过修改php.ini文件来达到同样的效果。在php.ini文件中,设置error_log参数即可。比如:
error_log = /var/log/php_errors.log这个参数告诉php将错误日志输出到/var/log/php_errors.log文件中。 除了php error_log外,还有一些优秀的logging工具可以帮助我们更好地记录代码的运行情况。比如,Monolog是非常优秀的php logging工具之一,它提供了多种不同的handler,可以将日志信息输出到文件、syslog、数据库等等。 Monolog的使用也非常简单,我们只需要引入相应的包即可开始使用。比如,要使用Monolog的文件handler,需要先引入Monolog的包:
composer require monolog/monolog引入成功后,就可以使用Monolog提供的日志级别并输出到文件中:
use Monolog\Logger; use Monolog\Handler\StreamHandler; $logger = new Logger('my_logger'); $logger->pushHandler(new StreamHandler('/var/log/my.log', Logger::WARNING)); $logger->warning('Test warning');上述代码中,我们定义了一个my_logger,并将日志级别设置为警告。如果我们使用Monolog的其他handler,只需要将StreamHandler替换成相应的handler即可。 通过正确的使用logging工具,我们可以更好地了解代码工作情况,定位问题,提高代码质量。希望本文能够对您有所帮助。