2017 © Pedro Peláez
 

library snaglogger

A PSR-3 logger for Bugsnag

image

itafroma/snaglogger

A PSR-3 logger for Bugsnag

  • Thursday, July 12, 2018
  • by itafroma
  • Repository
  • 1 Watchers
  • 0 Stars
  • 47 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 6 Versions
  • 9 % Grown

The README.md

Snaglogger

Snaglogger is a PSR-3-compatible logger that sends log messages to Bugsnag., (*1)

Installation

Snaglogger can be added to your project via Composer:, (*2)

{
    "require": {
        "itafroma/snaglogger": "^2.0"
    }
}

Snaglogger uses semantic versioning. In general, you can pin to ^[MAJOR].0 and be confident you will not receive breaking changes during updates., (*3)

Usage

Quickstart

Snaglogger comes with a factory that instantiates the logger with sensible defaults:, (*4)

use Itafroma\Snaglogger\LoggerFactory;

$key    = 'YOUR BUGSNAG API KEY HERE';
$logger = LoggerFactory::create($key);

Once instantiated, the logger will work as any other PSR-3-compatiable logger:, (*5)

$logger->info('This is an informational message.');
$logger->error('This is an error.');

The PSR-3 context array

Snaglogger will send the contents of the $context array to Bugsnag as metadata., (*6)

Additionally, Snaglogger treats two $context keys as special:, (*7)

  • If the exception key contains an instance of an exception, Snaglogger will record the log message as an exception instead of an error.
  • If the error-type key is set, Snaglogger will use that as the error type. Otherwise, it will use the error severity.

Finally, Snaglogger will use the $context array for placeholder replacement within the log message:, (*8)

$message = 'The {location} is on fire!';
$context = ['location' => 'roof'];

// Bugsnag will record the error message as "The roof is on fire!"
$logger->error($message, $context);

Severity levels

Bugsnag only supports three severity levels: info, warning, and error. However, PSR-3 requires loggers to support eight: emergency, alert, critical, error, warning, notice, info, and debug. By default, Snaglogger maps these additional log levels to the closest Bugsnag severity level:, (*9)

  • emergency → error
  • alert → error
  • critical → error
  • error → error
  • warning → warning
  • notice → info
  • info → info
  • debug → info

Advanced usage

Some functionality can be customized by implementing certain interfaces:, (*10)

More information can be found in those interfaces' inline documentation., (*11)

You may also want to customize the Bugsnag client., (*12)

To override Snaglogger's default functionality, you will need to:, (*13)

  1. Implement your own concrete class of \Itafroma\Snaglogger\LoggerFactoryInterface, and/or
  2. Call the Logger constructor directly.

For example:, (*14)

$client = Client::make('API KEY')->setReleaseStage('prod');
$interpolator = new CustomMessageInterpolator();
$mapper = new CustomSeverityMapper();

$logger = new Logger($client, $interpolator, $mapper);

Contributing

Contributions are welcome! Please see the separate CONTRIBUTING file for more information., (*15)

This extension is copyright Mark Trapp. All Rights Reserved. It is made available under the terms of the MIT license. A copy of the license can be found in the LICENSE file., (*16)

Disclaimer

This project has no affliation with Bugsnag in any way. Additional disclaimers can be found in the LICENSE file., (*17)

The Versions

12/07 2018
16/06 2017
16/06 2017
06/01 2017
03/01 2017