Pollen Solutions - 日志组件 - Monolog PSR-3 日志实现。

v1.0.1 2021-08-12 00:00 UTC

This package is auto-updated.

Last update: 2024-09-30 01:32:35 UTC


README

Latest Stable Version MIT Licensed PHP Supported Versions

Pollen Solutions 日志 组件提供基于 Monolog 的 PSR-3 日志实现。

安装

composer require pollen-solutions/log

基本用法

use Pollen\Log\LogManager;

$log = new LogManager();

// Adds a log record at the DEBUG level
$log->debug('My debug message');

// Adds a log record at the INFO level
$log->debug('My info message');

// Adds a log record at the SUCCESS level
$log->success('My success message');

// Adds a log record at the NOTICE level
$log->notice('My notice message');

// Adds a log record at the WARNING level
$log->warning('My warning message');

// Adds a log record at the ERROR level
$log->error('My error message');

// Adds a log record at the CRITICAL level
$log->critical('My critical message');

// Adds a log record at the ALERT level
$log->alert('My alert message');

// Adds a log record at the EMERGENCY level
$log->emergency('My alert message');
 

日志存储路径

默认情况下,如果没有指定特定处理器,日志管理器使用 Monolog RotatingFileHandler。它将日志文件存储在应用程序的公共目录中。建议将其更改为一个更合适的路径,并确保具有适当的写入文件权限。

use Pollen\Log\LogManager;

$log = (new LogManager())->setDefaultStoragePath('/var/log/myapp');

创建内置通道并使用它

与默认日志通道一样,内置通道使用 RotatingFileHandler 和 LineFormatter。但您也可以自定义其一些参数。

use Pollen\Log\Logger;
use Pollen\Log\LogManager;

$log = new LogManager();

$log->registerChannel('my-channel', [
       /** 
        * Log filename (relative or absolute).
        * @see \Monolog\Handler\RotatingFileHandler
        * @var string|null
        */
        'filename' => null,
       /** 
        * Rotation frequency.
        * @see \Monolog\Handler\RotatingFileHandler
        * @var int|null
        */
       'rotate' => null,
       /** 
        * Minimum logging level.
        * @see \Monolog\Handler\RotatingFileHandler
        * @var string|null
        */
        'level'  => Logger::SUCCESS,
       /** 
        * Line format.
        * @see \Monolog\Formatter\LineFormatter
        * @var string|null
        */
      'format' => null,
       /** 
        * Date format. 
        * @see \Monolog\Formatter\LineFormatter
        * @var string|null
        */
      'date_format' => null
]);

$log->channel('my-channel')->success('Test log success message');

创建您自己的自定义通道

Monolog 提供了大量的 处理器格式化器。您可能需要使用您自己的配置并在 Pollen Solutions 日志组件中使用它。

use Monolog\Handler\NativeMailerHandler;
use Pollen\Log\Logger;
use Pollen\Log\LogManager;

$log = new LogManager();

$channel = new Logger(
    'mailer',
    [new NativeMailerHandler('to@domain.ltd', 'You have a log report message !', 'from@domain.ltd')]
);

$log->addChannel($channel);

$log->channel('mailer')->error('Test log error message');