build(monitoring): implement open-telemetry support
This commit is contained in:
35
src/Bridge/Monolog/Handler/SymfonyOtelHandler.php
Normal file
35
src/Bridge/Monolog/Handler/SymfonyOtelHandler.php
Normal file
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Bridge\Monolog\Handler;
|
||||
|
||||
use Monolog\Handler\AbstractHandler;
|
||||
use Monolog\LogRecord;
|
||||
use OpenTelemetry\API\Globals;
|
||||
use OpenTelemetry\Contrib\Logs\Monolog\Handler;
|
||||
use Psr\Log\LogLevel;
|
||||
|
||||
/**
|
||||
* This handler will send logs to OpenTelemetry using the Monolog adapter.
|
||||
*/
|
||||
final class SymfonyOtelHandler extends AbstractHandler
|
||||
{
|
||||
private readonly Handler $innerHandler;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->innerHandler = new Handler(
|
||||
Globals::loggerProvider(),
|
||||
LogLevel::INFO, //or `Logger::INFO`, or `Level::Info` depending on monolog version
|
||||
true,
|
||||
);
|
||||
}
|
||||
|
||||
public function handle(LogRecord $record): bool
|
||||
{
|
||||
return $this->innerHandler->handle($record);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user