Skip to content

RamiBadrPRo/laravel-ecs-logging

 
 

Repository files navigation

Laravel Elastic Common Scheme (ECS) Logging

This package is a fork of AviationCode\EcsLogging, it tries to fix some bugs.

Installation

You can install the package via composer:

composer require ramibadrpro/laravel-ecs-logging

It's recommended to require jenssegers/agent which will add user agent logging support.

composer require jenssegers/agent

Optionally, you can publish the config file with:

php artisan vendor:publish --provider="AviationCode\EcsLogging\EcsLoggingServiceProvider" --tag="config"

Register log driver in config/logging.php

return [
    'channels' => [
        // ... Other channels

        'ecs' => [
            'driver' => 'ecs',
            'path' => storage_path('logs/ecs/laravel.json'),
            'level' => 'debug',
            'days' => 14,
        ],
    ]
];

If you want to use this driver as the only logging method define LOG_CHANNEL=ecs in your .env or add the ecs channel into your stack driver.

All Log::xxx() calls get logged into json file. This file can be picked up by filebeat which sends it to your logstash or elasticsearch instance.

Configure filebeat

Add the following to your /etc/filebeat/filebeat.yml file

filebeat.inputs:
  - type: log
    enabled: true
    paths:
      - /path-to-your-laravel-app/storage/logs/ecs/*.json
    json:
      message_key: message
      keys_under_root: true
      overwrite_keys: true

BUGS :

  • Current bugs within the ecs-logs package :

Typed static property Aviation Code\Ecs Logging\Tracing\Correlate::$id must not be accessed before initialization

This is due to trying to access type hinted properties statically before assigning values to them, this was fixed by initialising them with null values

Fork Changelog :

13/05/2022 : Added the option to disable log file rotation through config file (Use the option disable_rotate)

Credits

License

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

About

Adding ECS (Elastic Common Schema) Logging to laravel

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%