2017 © Pedro Peláez
 

library laravel-monolog-kinesis

Laravel package that logs to Kinesis

image

pod-point/laravel-monolog-kinesis

Laravel package that logs to Kinesis

  • Monday, July 2, 2018
  • by pod-point
  • Repository
  • 2 Watchers
  • 0 Stars
  • 292 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

Laravel Monolog Kinesis Driver

Latest Version on Packagist GitHub Workflow Status Software License Total Downloads, (*1)

A simple package to forward Laravel application logs to a Kinesis stream., (*2)

Installation

Require the package with composer:, (*3)

composer require pod-point/laravel-monolog-kinesis

For Laravel < 6.0 you can use pod-point/laravel-monolog-kinesis:^2.0., (*4)

Setting up the AWS Kinesis service

Add your AWS key ID, secret and default region to your config/services.php:, (*5)

<?php

return [

    // ...

    'kinesis' => [
        'key' => env('AWS_ACCESS_KEY_ID'),
        'secret' => env('AWS_SECRET_ACCESS_KEY'),
        'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
    ],

];

Usage

Simply use the kinesis driver on any of your channels within your config/logging.php:, (*6)

<?php

return [

    // ...

    'channels' => [

        'some_channel' => [
            'driver' => 'kinesis',
            'stream' => 'some_stream_name',
            'level' => 'info', // default level is debug
        ],

    ],

];

You can optionally specify a different key, secret and region at the channel level too if necessary:, (*7)

<?php

return [

    // ...

    'channels' => [

        'some_channel' => [
            'driver' => 'kinesis',
            'stream' => env('LOGGING_KINESIS_STREAM'),
            'level' => env('LOG_LEVEL', 'debug'),
            'key' => env('AWS_ACCESS_KEY_ID'),
            'secret' => env('AWS_SECRET_ACCESS_KEY'),
            'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
        ],

    ],

];

Formatting

When calling for example:, (*8)

logger()->info('This is an info log message', ['foo' => 'bar']);

This is the default format we will use to forward Laravel application logs to a Kinesis stream, (*9)

{
    "Data": {
        "timestamp": "2022-10-05T11:13:48.166208+00:00",
        "host": "localhost",
        "project": "Your Laravel App Name",
        "env": "production",
        "message": "This is an info log message",
        "channel": "some_channel",
        "level": "INFO",
        "extra": "",
        "context": {
            "foo": "bar"
        },
    },
    "PartitionKey": "some_channel",
    "StreamName": "some-kinesis-stream-name"
}

If this doesn't suit your needs, you can specify a custom formatter to use:, (*10)

<?php

return [

    // ...

    'channels' => [

        'some_channel' => [
            // ...
            'formatter' => \App\SimplerCustomFormatter::class,
        ],

    ],

];

And define it like so for example:, (*11)

namespace App;

use Monolog\Formatter\NormalizerFormatter;

class SimplerCustomFormatter extends NormalizerFormatter
{
    public function format(array $record) // here you can customize the formatting
    {
        return [
            'Data' => [
                'level' => $record['level_name'],
                'custom_message' => $record['message'],
            ],
        ];
    }
}

HTTP options

You can configure a set of http options that are applied to http requests and transfers created when using the AWS SDK from both the service and channel levels., (*12)

// ...
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
'http' => [
    'verify' => false
]

More details about all the supported options can be found from the AWS documentation., (*13)

Permissions

If you are using an AWS Key, remember to add the kinesis:PutRecord and kinesis:PutRecords permissions to this user., (*14)

Changelog

Please see our Releases for more information on what has changed recently., (*15)

Contributing

Please see CONTRIBUTING for details., (*16)


, (*17)

Travel shouldn't damage the earth 🌍, (*18)

Made with ❤️  at Pod Point, (*19)

The Versions

02/07 2018

dev-master

9999999-dev

Laravel package that logs to Kinesis

  Sources   Download

MIT

The Requires

 

The Development Requires

by Ben Speakman

laravel logging monolog kinesis

02/07 2018

v1.2

1.2.0.0

Laravel package that logs to Kinesis

  Sources   Download

MIT

The Requires

 

The Development Requires

by Ben Speakman

laravel logging monolog kinesis

29/06 2018

v1.1

1.1.0.0

Laravel package that logs to Kinesis

  Sources   Download

MIT

The Requires

 

The Development Requires

by Ben Speakman

laravel logging monolog kinesis

29/06 2018

v1.0

1.0.0.0

Laravel package that logs to Kinesis

  Sources   Download

MIT

The Requires

 

The Development Requires

by Ben Speakman

laravel logging monolog kinesis