日志记录

因为v2.11:这里描述的API是在Matomo(以前的Piwik) 2.11中引入的,不适用于以前的版本。

日志记录是记录在Matomo运行时发生的事件的操作。其目的是:

  • 允许用户通过能够知道何时发生轻微或重大错误来监视其Matomo安装的运行状况
  • 通过详细描述导致错误的事件,帮助用户调试问题

为了记录消息,Matomo使用标准化的Psr \ \ LoggerInterface日志PSR-3标准).这个PHP标准允许Matomo开发人员使用标准接口,从而可以在两者之间进行切换任何兼容PHP日志。

Matomo选择的PSR-3实现是独白.独白是一个强大的和非常可定制的记录器使用的Symfony, Silex, Laravel…

如何记录消息

要记录消息,需要获取记录器的一个实例。为此,您可以通过注入来使用依赖项注入Psr \ \ LoggerInterface日志

私人美元记录器;公共函数__construct(\Psr\Log\LoggerInterface $logger) {$this->logger = $logger;}公共函数myMethod() {$this->记录器->信息('这是一个信息');}

然后,您可以使用任何严重级别记录消息:

$this->记录器->错误('这是一个错误');$this->记录器->警告('这是一个警告');$this->logger->notice('这是一个通知');$this->记录器->信息('这是一个信息');$this->记录器->调试('这是一个调试消息');

根据用户在其日志中配置的日志级别,将记录或不记录每条消息config.php.ini.开发人员不应该根据当前的日志级别有条件地进行日志记录:他们应该简单地进行日志记录,然后让系统自行处理。

参数化信息

如果错误消息是动态构造的字符串,则应该这样做这样记录:

$logger->info('配置选项'。美元的名字。“有一个无效的值”。美元价值);

相反,您应该使用标准化的日志格式(在PSR-3标准):

$logger->info('配置选项{name}有一个无效的值{value}', array('name' => $name, 'value' => $value,));

在将日志写入后端(例如文件,数据库,…)之前,占位符将被实际值替换:

INFO[2014-12-14 21:49:06]配置选项foo有一个无效的值栏

记录异常

如果发生异常,您有两个选择:

  • 抓住它
  • 不要抓住它,让它冒泡

如果发生异常,应该停止所有操作并显示错误页面,则不应该捕获异常。让它冒泡,Matomo将捕获它并将异常消息显示给用户。

如果发生异常,但当前操作不应中断,则应该捕获异常。如果异常是预期的情况,您可能不应该记录它。您应该只在用户应该注意到的意外情况下才记录它。

一般规则是:您应该只记录对用户有用的信息(用于调试问题或预测潜在的问题)。

如果您想记录异常,您应该遵循PSR-3的标准通过使用异常输入参数数组

try {$httpClient->post('https://example.com/_abc_123', $data);} catch (RequestException $e) {$logger->错误('无法备份数据,稍后再试',array('exception' => $e));}

在这个例子中,我们log到错误级别,但我们捕获了异常:当前进程将不会中止。

查看日志

要查看日志,建议使用我们的LogViewer插件:浏览如何查看Matomo应用程序日志?

Baidu