翻译者:长风Drupal开发:Drupal8 Logging API
原文链接:https://www.drupal.org/docs/8/api/logging-api/overview
本章节我们学习Drupal8 Logging API.
在Drupal8中,hook_watchdog()已经不再被支持了,如果一个Drupal8的模块要实现日志,就必需注册一个日志的服务
services:
logger.mylog:
class: Drupal\mylog\Logger\MyLog
tags:
- { name: logger }
这个类必需继承 \Psr\Log\LoggerInterface
namespace Drupal\mylog\Logger;
use Drupal\Core\Logger\RfcLoggerTrait;
use Psr\Log\LoggerInterface;
class MyLog implements LoggerInterface {
use RfcLoggerTrait;
/**
* {@inheritdoc}
*/
public function log($level, $message, array $context = array()) {
// Do stuff
}
}
在Drupal8中,watchdog($type, $message, $variables, $severity, $link) 已经不再被支持,替代的Drupal8 Logging API是: \Drupal::logger($type)->log($severity, $message, $variables)
Drupal7中的watchdog如下:
// Logs a notice
watchdog('my_module', $message, array());
// Logs an error
watchdog('my_module', $message, array(), WATCHDOG_ERROR);
Drupal8 Logging API的使用如下:
// Logs a notice
\Drupal::logger('my_module')->notice($message);
// Logs an error
\Drupal::logger('my_module')->error($message);