thereddot / monolog-extra-bundle
Symfony bundle with extra processors and logger to log request/response
Installs: 40 816
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 3
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=7.1.0
- symfony/config: ^3.4 || ^4.4 || ^5.0
- symfony/dependency-injection: ^3.4 || ^4.4 || ^5.0
- symfony/http-foundation: ^3.4 || ^4.4 || ^5.0
- symfony/http-kernel: ^3.4 || ^4.4 || ^5.0
- symfony/monolog-bundle: ^3.0
- symfony/property-access: ^3.4 || ^4.4 || ^5.0
- symfony/security-core: ^3.4 || ^4.4 || ^5.0
Requires (Dev)
- phpspec/phpspec: ^5.1|^6.0
Replaces
- hexanet/monolog-extra-bundle: v4.2.1
README
❗ This package is abandoned and no longer actively maintained.
Symfony bundle with extra processors and logger to log request/response/command.
Installation
Applications that use Symfony Flex
Open a command console, enter your project directory and execute:
$ composer require thereddot/monolog-extra-bundle
Applications that don't use Symfony Flex
Step 1: Download the Bundle
Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
$ composer require thereddot/monolog-extra-bundle
This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation.
Step 2: Enable the Bundle
Then, enable the bundle by adding it to the list of registered bundles
in the app/AppKernel.php
file of your project:
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new TheRedDot\MonologExtraBundle\TheRedDotMonologExtraBundle(), ); // ... } // ... }
Usage
Processors
The bundle provides several processors:
- User
- Session id
- Request id
- Additions
User
The UserProcessor add data about the current user in each log entry.
the_red_dot_monolog_extra: processor: user: true
The default provider SymfonyUserProvider
returns:
- anonymous when no user is logged
- the username of the current logged user
- cli
You can customize the provider to replace the username by another property:
TheRedDot\MonologExtraBundle\Provider\User\SymfonyUserProvider: arguments: $className: App\Entity\User $propertyName: myCustomProperty
You can create your own provider by creating a service that implements TheRedDot\MonologExtraBundle\Provider\User\UserProviderInterface.
the_red_dot_monolog_extra: provider: user: your_own_provider_service_id
Session id
Add the session id in each log entry.
the_red_dot_monolog_extra: session_start: false processor: session_id: true
You can create your own provider by creating a service that implements TheRedDot\MonologExtraBundle\Provider\Session\SessionIdProviderInterface.
the_red_dot_monolog_extra: provider: session_id: your_own_provider_service_id
Request id
Add the request id for the request in each log entry.
the_red_dot_monolog_extra: processor: request_id: true
The bundle comes with 2 providers:
- UniqidProvider (default): use
uniqid
- ServerRequestIdProvider: get from
$_SERVER
- you need to pass the name of a field of
$_SERVER
, example for mod_unique_id of Apache:UNIQUE_ID
.
- you need to pass the name of a field of
You can create your own provider by creating a service that implements TheRedDot\MonologExtraBundle\Provider\RequestId\RequestIdProviderInterface.
the_red_dot_monolog_extra: provider: request_id: your_own_provider_service_id
Additions
Add custom data in each log entry.
the_red_dot_monolog_extra: processor: additions: type: symfony application: the best symfony application locale: "%locale%" environment: "%kernel.environment%"
Loggers
On request
Create a log entry with the request data.
On response
Create a log entry with the response data.
On console command
Create a log entry before executing any command.
On console exception
Create a log entry when an exception occurs in console.
Add request id to response
Add the request id of the previous processor in the response headers.
HTTP/1.1 302 Found
X-Request-ID: 57c5f5e842b10
Configuration reference
Configuration reference for a reference on the available configuration options.
Credits
Forked from Hexanet/MonologExtraBundle.
License
MonologExtraBundle is licensed under the MIT license.