sibirsky87 /yii-monolog
用于与yii 1.x一起使用monolog的扩展
v2.0.1
2021-09-03 08:54 UTC
Requires
- php: >=7.4
- monolog/monolog: *
README
受 enlitepro/enlite-monolog 和 smartapps-fr/yii-monolog 启发
安装
推荐的安装方式是通过命令行使用composer。
composer require asuran/yii-monolog
使用
- 将组件添加到预加载列表
<?php return [ 'preload' => [ 'monolog', ], ];
- 配置组件
<?php return [ 'components' => [ 'monolog' => [ 'class' => 'YiiMonolog\MonologComponent', 'name' => 'MyApplication', 'handlers' => [ 'file' => [ 'class' => 'Monolog\Handler\StreamHandler', 'stream' => '/runtime/app.log', 'formatter' => 'Monolog\Formatter\LineFormatter', ], static function () { /** @var StreamHandler $stream */ $stream = Yii::createComponent([ 'class' => RotatingFileHandler::class, ], Yii::app()->runtimePath.'/application.log', 10); $formatter = Yii::createComponent([ 'class' => LineFormatter::class, ]); $stream->setFormatter($formatter); return $stream; } ], 'processors' => [ 'Monolog\Processor\ProcessIdProcessor', ], ], ], ];
- 添加日志路由
<?php return [ 'components' => [ 'log' => [ 'class' => 'CLogRouter', 'routes' => [ 'monolog' => [ 'class' => 'YiiMonolog\MonologLogRoute', ], ], ], ], ];
- 添加异常处理器
<?php return [ 'components' => [ 'errorHandler' => [ 'class' => 'YiiMonolog\MonologErrorHandler', 'errorAction' => 'site/error', ], ], ];
- 使用它
<?php # Using info with variables Yii::log("A new store user did a self-register on the system", \Monolog\Logger::INFO, [ 'id' => $form->usuario->id, 'category' => 'users', ]); # Using debug with variables Yii::log("Info about the new store user created", \Monolog\Logger::DEBUG, [ 'id' => $form->usuario->id, 'cnpj' => $form->usuario->usu_login, 'email' => $form->usuario->usu_email, 'category' => 'users', ]); # Using error without variables. # System will convert the 3th parameter in "category" parameter and store it as an array of variables # This first example keeps the Yii::log compatible with old logs in your system Yii::log("File not found", CLogger::LEVEL_ERROR, "command.gearman"); # This another example allows to use all monolog levels for messages Yii::log("File not found", \Monolog\Logger::ERROR, "command.gearman");