Я хочу иметь возможность добавить уникальный идентификатор (Uid) в мою регистрацию.
В Пример 1: Что зависит от файлов config/logging.php
и ProcessorTap
ниже, не работает должным образом. Для ведения журнала настроено использование stdout
, которое относится к классу ProcessorTap
, который предполагает добавление Uid при создании оператора журнала (в соответствии с UidProcessor
)
Пример 2 : Который использует только классы Mono, работает как положено.
Почему в Примере 1 не добавляется Uid
в журналы, когда laravel ("laravel/framework": "5.7.*")
также должен использовать классы Monolog?
Пример 1 : Когда вызывается этот API, вывод для Log::info('test')
не включает UiD
Route::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"}
});