2017 © Pedro Peláez
 

library monolog-extra-data-processor

A Monolog processor for adding arbitrary logging data

image

creitive/monolog-extra-data-processor

A Monolog processor for adding arbitrary logging data

  • Tuesday, October 20, 2015
  • by levacic
  • Repository
  • 15 Watchers
  • 5 Stars
  • 17,204 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 14 % Grown

The README.md

Monolog Extra Data Processor

Latest Version on Packagist ![Software License][ico-license] Build Status ![Total Downloads][ico-downloads], (*1)

A processor for Monolog to enable easy addition of arbitrary data into all log entries., (*2)

Install

Via Composer, (*3)

``` bash $ composer require creitive/monolog-extra-data-processor, (*4)


## Usage You can do something like this (obviously, the data you pass in depends on your own needs): ``` php $extraDataProcessor = new ExtraDataProcessor([ 'environment' => getenv('APP_ENV'), 'cookies' => $_COOKIES, 'foo' => 'bar', ]); /* * Assuming `$monolog` is an instance of `\Monolog\Logger`: */ $monolog->pushProcessor($extraDataProcessor);

That's all! The extra data you've passed will now be logged with all entries, under the extra attribute., (*5)

If you already have an instance with some data, you can add additional data:, (*6)

``` php $extraDataProcessor = addExtraData([ 'baz' => 'qux', ]);, (*7)


You can also remove extra data by keys: ``` php $extraDataProcessor->removeExtraData([ 'foo', 'baz', ]);

And get all currently configured data:, (*8)

``` php $extraData = $extraDataProcessor->getExtraData();, (*9)



## 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: ```php $app->configureMonologUsing(function(\Monolog\Logger $monolog) use ($app) { $configurator = new \App\Log\Configurator; $configurator->configure($monolog, $app); });

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., (*10)

The request data is added later using a service provider, when the app is already booted., (*11)

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.), (*12)

Change log

Please see CHANGELOG for more information what has changed recently., (*13)

Testing

bash $ composer test, (*14)

Contributing

Please see CONTRIBUTING and CONDUCT for details., (*15)

Security

If you discover any security related issues, please email development@creitive.rs instead of using the issue tracker., (*16)

Credits

License

The MIT License (MIT). Please see License File for more information., (*17)

The Versions

20/10 2015

dev-master

9999999-dev https://github.com/creitive/monolog-extra-data-processor

A Monolog processor for adding arbitrary logging data

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

The Development Requires

monolog processor

20/10 2015

1.0.1

1.0.1.0 https://github.com/creitive/monolog-extra-data-processor

A Monolog processor for adding arbitrary logging data

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

The Development Requires

monolog processor

20/10 2015

1.0.0

1.0.0.0 https://github.com/creitive/monolog-extra-data-processor

A Monolog processor for adding arbitrary logging data

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

The Development Requires

monolog processor