salvegame197/laravel-mongodb-logging

There is no license information available for the latest version (1.0.7) of this package.

Logging to Mongodb using Laravel logging

1.0.7 2022-05-02 20:54 UTC

This package is auto-updated.

Last update: 2024-04-30 00:42:53 UTC


README

This package gives opportunity logging to mongodb with custom Laravel logging

Package jenssegers/laravel-mongodb is required

##UPDATED LARAVEL 8

Installation

composer require salvegame197/laravel-mongodb-logging

Configuration

Add configurations to file ..\your_project\config\logging.php

'mogodb-channel' => [
            'driver' => 'custom',
            'via' => \Nechaienko\MongodbLogging\LogToMongoDb::class,
            'level' => 'info',
            'connection' => 'mongodb',
            'collection' => 'logs',         
        ],

Customization

Additional fields

'mogodb-channel' => [
            ...
            'additional_fields' => [
                'environment' => config('app.env'),
                ...
            ],         
        ],

Fields formatting

You can override model from package and change fields format with Laravel mutators

  1. Create your model and override needed method
namespace App\Services\Logging;

use Nechaienko\MongodbLogging\MongoDbModel as ParentMongoDbModel;

class MongoDbModel extends ParentMongoDbModel
{
    public function setDatetimeAttribute($value)
    {
        ...
        $this->attributes['datetime'] = $resultValue;
    }
}
  1. Add your model to confs
'mogodb-channel' => [
            ...
            'custom_model' => \App\Services\Logging\MongoDbModel::class,         
        ],

Set default fields

You can define fields to set by overriding constant FIELDS_TO_SET

namespace App\Services\Logging;

use Nechaienko\MongodbLogging\MongoDbModel as ParentMongoDbModel;

class MongoDbModel extends ParentMongoDbModel
{
    public const FIELDS_TO_SET = [
        'message',
        'level_name',
        'datetime',
        'extra',
    ];
}

Usage

use Illuminate\Support\Facades\Log;
...
Log::channel('mogodb-channel')->info('message');