esolitos/monolog

此包已被废弃,不再维护。作者建议使用 drupal/monolog 包。

一个用于集成 Monolog 库的框架和 UI。

安装数1,633

依赖项: 0

建议者: 0

安全性: 0

星标: 0

关注者: 3

分支: 0

类型:drupal-module

dev-8.x-1.x 2018-04-18 12:14 UTC

This package is auto-updated.

Last update: 2021-03-26 13:16:58 UTC


README

概述

此模块将 Drupal 与 Seldaek 的出色 Monolog 库 集成,以提供更好的日志记录解决方案。使用此模块的一些好处如下

  • 可配置的日志级别
  • 众多处理器
  • Monolog 的全部功能和灵活性

Drupal Monolog 模块还完全集成了 watchdog,因此无需额外配置即可与核心和贡献模块一起使用。

Monolog 将您的日志发送到文件、套接字、收件箱、数据库和各种网络服务。此模块是 Monolog 库与 Drupal 日志系统集成的薄包装器。有关 Monolog 库本身的工作方式的更多信息,请参阅文档

安装

Monolog 模块需要通过 Composer 安装,这将下载所需的库。有关更多信息,请参阅使用 Composer 与 Drupal

快速入门

Monolog 模块没有 UI,所有配置都在服务文件中完成。

您应在 settings.php 所在文件夹中创建一个特定于站点的 services.yml(例如 monolog.services.yml),然后将此行添加到 settings.php 中

$settings['container_yamls'][] = 'sites/default/monolog.services.yml';

允许 Monolog 将日志记录到旋转文件的简单配置可能是

parameters:
  monolog.channel_handlers:
    default: ['rotating_file']
  monolog.processors: ['message_placeholder', 'current_user', 'request_uri', 'ip', 'referer']

services:
  monolog.handler.rotating_file:
    class: Monolog\Handler\RotatingFileHandler
    arguments: ['private://logs/debug.log', 10, 'monolog.level.debug']

此配置将记录所有大于(或等于)debug 日志级别的消息,并将它们记录到名为 debug.log 的文件中,该文件位于您的私有文件系统中的 logs 文件夹中。文件将每天轮换,最多保留 10 个文件。

工作原理

处理器

处理器作为服务注册在 Drupal 服务容器 中。您可以定义您需要的任何数量的处理器。每个处理器都有一个名称(应在 monolog.handler. 命名空间下),一个实现类和一系列参数。

通过定义参数在日志记录器通道和 Monolog 处理器之间进行映射。在 monolog.channel_handlers 参数下,可以定义从特定通道发送日志的位置。default 映射应作为后备选项存在。在先前的示例中,所有日志都将发送到 monolog.handler.rotating_file 处理器(注意,只使用处理器名称,而不是完整的服务名称)。

以下示例将所有 PHP 特定的日志发送到单独的文件

parameters:
  monolog.channel_handlers:
    php: ['rotating_file_php']
    default: ['rotating_file_all']
  monolog.processors: ['message_placeholder', 'current_user', 'request_uri', 'ip', 'referer']

services:
  monolog.handler.rotating_file_php:
    class: Monolog\Handler\RotatingFileHandler
    arguments: ['private://logs/php.log', 10, 'monolog.level.debug']
  monolog.handler.rotating_file_all:
    class: Monolog\Handler\RotatingFileHandler
    arguments: ['private://logs/debug.log', 10, 'monolog.level.debug']

以下方法

\Drupal::logger('php')->debug('debug message');

将写入相应的消息到 private://logs/php.log 文件。

处理器

Monolog 可以使用 处理器 修改写入日志工具的消息。该模块提供一组已定义的处理器,用于添加当前用户、请求 URI、客户端 IP 等信息。

处理器被定义为 monolog.processor. 命名空间下的服务。我们建议您使用 Devel 模块Drupal Console 来查找所有处理器。

数据库日志

Monolog 模块自动为每个启用的 Drupal 日志器注册一个处理器。要记录到标准的 watchdog 表,您可以启用数据库日志模块并使用 drupal.dblog 作为处理器。

示例

  • RotatingFileHandler:记录到文件系统
  monolog.handler.rotating_file_debug:
    class: Monolog\Handler\RotatingFileHandler
    arguments: ['public://logs/debug.log', 10, 'monolog.level.debug']
  • SlackHandler:记录到 Slack 频道
  monolog.handler.slack:
    class: Monolog\Handler\SlackHandler
    arguments: ['slack-token', 'monolog', 'Drupal', true, null, 'monolog.level.error']
  monolog.handler.fg:
    class: Monolog\Handler\FingersCrossedHandler
    arguments: ['@monolog.handler.slack', null, 100]

您可以在 这里 找到处理器/处理器的完整列表。

扩展 Monolog

处理器和处理器是 Drupal/Symfony 服务。您可以使用 Drupal 8 OOP 标准方法来定义新的或修改现有的处理器。