Laravel MonoLog,pushProcessor未记录附加属性

问题描述 投票:0回答:1

我希望能够向我的日志记录添加唯一的ID(Uid)。

示例1]中,取决于以下config/logging.phpProcessorTap文件的文件无法正常工作。在创建日志语句时(根据stdout),日志记录配置为使用ProcessorTap,它引用了UidProcessor类,该类应添加Uid。

示例2:仅使用Mono类,可以按预期工作。

[[为什么示例1在日志中添加Uid,而laravel ("laravel/framework": "5.7.*")也应使用Monolog类?

示例1

:调用此api时,Log::info('test')的输出不包含UiDRoute::get('/test', function () { Log::info('test'); //output = [2020-03-24 04:51:16] local.INFO: test });
config / logging.php:

'default' => env('LOG_CHANNEL', 'stdout'), //.env LOG_CHANNEL=stdout 'stdout' => [ 'driver' => 'monolog', 'handler' => StreamHandler::class, 'with' => [ 'stream' => 'php://stdout', ], 'tap' => [ ProcessorTap::class, ], ]

ProcessorTap:

use Monolog\Processor\UidProcessor; class ProcessorTap { /** * Customize the given logger instance. * * @param \Illuminate\Log\Logger $logger * @return void */ public function __invoke($logger) { $logger->pushProcessor(new UidProcessor()); } }

示例2

:正确运行Uid(a484a6729e14996c0af1)添加到$logger->info('test')
的日志中use Monolog\Logger; use Monolog\Processor\UidProcessor; Route::get('/test', function () { $logger = new Logger('main'); $logger->pushProcessor(new UidProcessor(20)); $logger->info('test'); // output = [2020-03-24 04:57:26] main.INFO: test [] {"uid":"a484a6729e14996c0af1"} });
我希望能够向我的日志记录添加唯一的ID(Uid)。在示例1中:取决于config / logging.php和下面的ProcessorTap文件无法正常工作。日志记录配置为...
php laravel laravel-5 laravel-5.7 monolog
1个回答
0
投票
这可能是特定于laravel(5.7)/ mono版本的问题,但是我能够通过处理程序并调用pushProcessor来解决via迭代的问题。>

use Monolog\Processor\UidProcessor; class ProcessorTap { /** * Customize the given logger instance. * * @param \Illuminate\Log\Logger $logger * @return void */ public function __invoke($logger) { collect($logger->getHandlers())->each(function ($handler) { $handler->pushProcessor(new UidProcessor()); }); } }

© www.soinside.com 2019 - 2024. All rights reserved.