本节对应书里的The logger component。
原文翻译整理如下:
在生产环境中,我们不能向客户抛出错误或空白页。我们避免出现这样的情况并在日志文件中记录错误。你将在下一章阅读到更多关于这个的信息。总之,我们将为依赖注入的容器实现一个自定义logger组件,捕捉异常,并记录他们。例如,下列代码:
1.直接使用下面的代码设置自定义logger组件:<?php
$di['logger'] = function() {
$error_file = __DIR__.'/../logs/'.date("Ymd_error").'log';
return new PhalconLoggerAdapterFile($error_file, array('mode' => 'a+'));
};2.创建一个方法,该方法将抛出异常、捕获并记录,如下所示:
<?php
public function testLoggerAction()
{
try {
$nonExistingComponent = $this->getDI()->get('nonExistingComponent');
$nonExistingComponent->executeNonExistingMethod();
} catch (Exception $e) {
$this->logger->error($e->getMessage());
return $this->response->redirect('error/500.html');
}
}在前面的例子中,我们尝试执行一个不存在的方法,代码将捕捉到这个异常。它将记录报错,并将用户重定向到一个友好的错误页面,error/ 500.html。你会注意到我们的logger组件调用一个名为error的方法。还有其他方法,如,debug, info, notice, warning等等。
Logger组件具备事务化的特性。(Phalcon 存储日志到内存,之后,它将数据写入到相应的适配器。)例如如下面的代码片断:
<?php
$this->logger->begin();
$this->logger->error('Ooops ! Error !');
$this->logger->warning('A warning message');
$this->logger->commit();
如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。
如本文对您有用,捐赠和留言 将是对我最好的支持~(捐赠可转为站内积分)
如愿意,请向朋友推荐本站,谢谢。
尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。
留言