请知悉:本文最近一次更新为 7年 前,文中内容可能已经过时。

本节对应书里的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();

如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。

尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。


与《零基础学Phalcon 6 logger 组件》相关的博文:


留言

avatar
😀
😀😁😂😅😭🤭😋😘🤔😰😱🤪💪👍👎🤝🌹👌