czim/laravel-context-log-library

Library for context logging for Laravel
12,010
Install
composer require czim/laravel-context-log-library
Latest Version:3.1.0
PHP:^8.1
Last Updated:May 29, 2024
Links: GitHub  ·  Packagist
Maintainer: czim

Latest Version on Packagist Software License Build Status Coverage Status

Context Logging library for Laravel

Helper library for standard setup of czim/laravel-json-context-logging.

This helps you to quickly create context channels for logging. It is not a requirement for using JSON context logging.

Version Compatibility

Laravel Package
6.0 - 8.0 1.0
9.0 2.0
10.0 and up 3.0

Installation

No installation required; however, classes must be bound manually in your service provider.

<?php

use Czim\LaravelContextLogging\Config\StandardJsonContextConfigSource;
use Czim\LaravelContextLogging\Contracts\ContextLoggerFactoryInterface;
use Czim\LaravelContextLogging\Contracts\DebugEventLogPrepperInterface;
use Czim\LaravelContextLogging\Factories\ContextLoggerFactory;

class AppServiceProvider extends \Illuminate\Support\ServiceProvider
{
    // ...

    public function register(): void
    {
        $this->app->singleton(
            DebugEventLogPrepperInterface::class,
            \Your\JsonContextEventLogPrepper::class
        );

        $this->app->singleton(
            ContextLoggerFactoryInterface::class,
            function (): void {
                $factory = new ContextLoggerFactory();
                $factory->setConfigs($this->makeLogContextConfigArray());
                return $factory;
            }
        );
    }

    protected function makeLogContextConfigArray(): array
    {
        return $this->app->make(StandardJsonContextConfigSource::class)
            ->enableContextLogging()
            ->makeConfigArray();
    }
}

You will also have to set up your own event, which may extend Czim\LaravelContextLogging\Events\AbstractDebugEvent. The listener for that event should use the ContextLoggerFactoryInterface to make a logger, and the DebugEventLogPrepperInterface to render the event into loggable data to be logged by it.

Credits

License

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

Related Packages

nilportugues/laravel5-json-api-dingo

Laravel5 JSONAPI and Dingo together to build APIs fast

1,498 30
aimeos/aimeos-laravel

Cloud native, API first Laravel eCommerce package with integrated AI for ultra-f...

234,897 8,697