1. Go to this page and download the library: Download methorz/http-request-logger library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
methorz / http-request-logger example snippets
use MethorZ\RequestLogger\Middleware\LoggingMiddleware;
// Mezzio / Laminas
$app->pipe(new LoggingMiddleware($logger));
// Any PSR-15 application
$dispatcher->pipe(new LoggingMiddleware($logger));
use MethorZ\RequestLogger\Processor\RequestIdProcessor;
use Monolog\Logger;
$logger = new Logger('app');
$logger->pushProcessor(new RequestIdProcessor());
$logger->info('User logged in', ['user_id' => 123]);
// Log output
$processor = new RequestIdProcessor('custom-request-id');
use MethorZ\RequestLogger\Middleware\LoggingMiddleware;
use MethorZ\RequestLogger\Processor\RequestIdProcessor;
// Basic usage
$middleware = new LoggingMiddleware($logger);
// Custom request ID processor
$processor = new RequestIdProcessor('custom-id');
$middleware = new LoggingMiddleware($logger, $processor);
// Disable X-Request-ID header
$middleware = new LoggingMiddleware($logger, null, false);
// Service A
$requestId = $processor->getRequestId();
$client->request('POST', '/api/service-b', [
'headers' => ['X-Request-ID' => $requestId],
]);
// Service B receives request with same ID
// All logs from both services share the request ID
$perfLogger->start('slow-operation');
$result = $this->processData($largeDataset);
$perfLogger->end('slow-operation', [
'records_processed' => count($largeDataset),
], LogLevel::WARNING); // Use WARNING level if it's slow
// config/autoload/logging.global.php
use MethorZ\RequestLogger\Middleware\LoggingMiddleware;
use MethorZ\RequestLogger\Processor\RequestIdProcessor;
use Monolog\Handler\StreamHandler;
use Monolog\Logger;
use Psr\Container\ContainerInterface;
use Psr\Log\LoggerInterface;
return [
'dependencies' => [
'factories' => [
LoggerInterface::class => function (ContainerInterface $container): Logger {
$logger = new Logger('app');
$logger->pushHandler(new StreamHandler('php://stdout', Logger::INFO));
return $logger;
},
RequestIdProcessor::class => fn() => new RequestIdProcessor(),
LoggingMiddleware::class => function (ContainerInterface $container): LoggingMiddleware {
return new LoggingMiddleware(
$container->get(LoggerInterface::class),
$container->get(RequestIdProcessor::class),
);
},
],
],
];
// config/pipeline.php
$app->pipe(LoggingMiddleware::class);
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Monolog\Formatter\JsonFormatter;
use MethorZ\RequestLogger\Processor\RequestIdProcessor;
$logger = new Logger('app');
// JSON formatter for structured logs
$handler = new StreamHandler('php://stdout', Logger::INFO);
$handler->setFormatter(new JsonFormatter());
$logger->pushHandler($handler);
// Add request ID processor
$logger->pushProcessor(new RequestIdProcessor());
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.