Skip to content

fluent logger for laravel (with Monolog handler for Fluentd)

License

Notifications You must be signed in to change notification settings

kzfk/Laravel-FluentLogger

 
 

Repository files navigation

laravel-fluent-logger

fluent logger for laravel (with Monolog handler for Fluentd )

fluentd

Build Status Coverage Status Dependency Status Scrutinizer Code Quality

License Latest Version Total Downloads StyleCI

SensioLabsInsight

usage

Installation For Laravel and Lumen

Require this package with Composer

$ composer require ytake/laravel-fluent-logger

or composer.json

"require": {
  "ytake/laravel-fluent-logger": "~1.0"
},

for laravel

your config/app.php

'providers' => [
    \Ytake\LaravelFluent\LogServiceProvider::class,
]

publish configure

  • basic
$ php artisan vendor:publish
  • use tag option
$ php artisan vendor:publish --tag=log
  • use provider
$ php artisan vendor:publish --provider="Ytake\LaravelFluent\LogServiceProvider"

Basic Push Handler

your Application service provider

public function boot()
{
    $this->app['fluent.handler']->pushHandler();
}

All logs to fluentd

in Application Http\Kernel class

override bootstrappers property

    /**
     * The bootstrap classes for the application.
     *
     * @var array
     */
    protected $bootstrappers = [
        'Illuminate\Foundation\Bootstrap\DetectEnvironment',
        'Illuminate\Foundation\Bootstrap\LoadConfiguration',
        \Ytake\LaravelFluent\ConfigureLogging::class,
        'Illuminate\Foundation\Bootstrap\HandleExceptions',
        'Illuminate\Foundation\Bootstrap\RegisterFacades',
        'Illuminate\Foundation\Bootstrap\RegisterProviders',
        'Illuminate\Foundation\Bootstrap\BootProviders',
    ];

in Application Console\Kernel class

override bootstrappers property

    protected $bootstrappers = [
        'Illuminate\Foundation\Bootstrap\DetectEnvironment',
        'Illuminate\Foundation\Bootstrap\LoadConfiguration',
        \Ytake\LaravelFluent\ConfigureLogging::class,
        'Illuminate\Foundation\Bootstrap\HandleExceptions',
        'Illuminate\Foundation\Bootstrap\RegisterFacades',
        'Illuminate\Foundation\Bootstrap\SetRequestForConsole',
        'Illuminate\Foundation\Bootstrap\RegisterProviders',
        'Illuminate\Foundation\Bootstrap\BootProviders',
    ];

edit config/app.php

'log' => 'fluent',

fluentd config sample

## match tag=local.** (for laravel log develop)
<match local.**>
  type stdout
</match>

example (production)

<match production.**>
 type stdout
</match>

and more

Package Optimize (Optional for production)

required config/compile.php

'providers' => [
    //
    \Ytake\LaravelFluent\LogServiceProvider::class,
],

for lumen

Extend \Laravel\Lumen\Application and override the getMonologHandler() method to set up your own logging config.

example

<?php

namespace App\Foundation;

use Monolog\Logger;
use Fluent\Logger\FluentLogger;
use Ytake\LaravelFluent\FluentHandler;

class Application extends \Laravel\Lumen\Application
{
    /**
     * @return FluentHandler
     */
    protected function getMonologHandler()
    {
        return new FluentHandler(
            new FluentLogger(env('FLUENTD_HOST', '127.0.0.1'), env('FLUENTD_PORT', 24224), []),
            Logger::DEBUG
        );
    }
}

fluentd config sample(lumen)

<match lumen.**>
  type stdout
</match>

Author

License

The code for laravel-fluent-logger is distributed under the terms of the MIT license.

About

fluent logger for laravel (with Monolog handler for Fluentd)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%