阅读(3202)
赞(11)
Laravel 8 通过工厂创建渠道
2021-06-28 15:56:08 更新
如果你想定义一个完全自定义的通道,你可以完全控制 Monolog 的实例化和配置,你可以在 config/logging.php
配置文件中指定 custom
驱动程序类型。 你的配置应该包含一个 via
选项,指向将被调用以创建 Monolog 实例的工厂类:
'channels' => [
'custom' => [
'driver' => 'custom',
'via' => App\Logging\CreateCustomLogger::class,
],
],
一旦配置了 custom
通道,就可以定义创建 Monolog 实例的类。 这个类只需要一个方法: __invoke
,它就可以返回 Monolog 实例:
<?php
namespace App\Logging;
use Monolog\Logger;
class CreateCustomLogger
{
/**
* 创建一个 Monolog 实例
*
* @param array $config
* @return \Monolog\Logger
*/
public function __invoke(array $config)
{
return new Logger(...);
}
}