Download the PHP package creitive/monolog-extra-data-processor without Composer
On this page you can find all versions of the php package creitive/monolog-extra-data-processor. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download creitive/monolog-extra-data-processor
More information about creitive/monolog-extra-data-processor
Files in creitive/monolog-extra-data-processor
Package monolog-extra-data-processor
Short Description A Monolog processor for adding arbitrary logging data
License MIT
Homepage https://github.com/creitive/monolog-extra-data-processor
Informations about the package monolog-extra-data-processor
Monolog Extra Data Processor
A processor for Monolog to enable easy addition of arbitrary data into all log entries.
Install
Via Composer
Usage
You can do something like this (obviously, the data you pass in depends on your own needs):
That's all! The extra data you've passed will now be logged with all entries, under the extra
attribute.
If you already have an instance with some data, you can add additional data:
You can also remove extra data by keys:
And get all currently configured data:
What's the point?
For example, we use this processor class to log the following data (which we find useful):
- Environment (e.g.
local
vs.staging
vs.production
) - Whether PHP is executing as a console command or a web request
- Command-line arguments (if relevant)
- HTTP method
- URL being visited
- Client's IP address
- Referrer
- User agent
Some of this (for example, the web-request stuff) is available via the Monolog\Processor\WebProcessor
- however, that class seems a bit limited in scope, and it would seem a bit hacky to use it for this purpose.
You could even misuse the Monolog\Processor\TagProcessor
class to log extra stuff, but it would all be under extra.tags
instead of just extra
- and it's still missing the point.
Tips
Since we primarily work with Laravel 5, we have an App\Log\Configurator
class, which wires the basic logging functionality. It's invoked in bootstrap/app.php
like this:
The configurator, in turn, pushes the GitProcessor
(awesome for knowing which exact project commit was being executed when the entry was logged), and the ExtraDataProcessor
to the passed logger instance. In this step, the ExtraDataProcessor
is only populated with the current environment, console command check, and command-line arguments - as the rest of the data comes via the HTTP request (which isn't captured yet at this point). We also configure the handlers at this point.
The request data is added later using a service provider, when the app is already booted.
If logging something like input data, be sure to pay attention to privacy issues - for example, don't log $_POST['password']
from login forms, as this compromises both your users and your system. This is especially true if you're using some kind of cloud-hosted third-party logging service (e.g. Logentries, Loggly, Papertrail, etc.)
Change log
Please see CHANGELOG for more information what has changed recently.
Testing
Contributing
Please see CONDUCT for details.
Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Credits
- Miloš Levačić
- All Contributors
License
The MIT License (MIT). Please see License File for more information.