https://github.com/pod-point/laravel-monolog-kinesis
Simply forward Laravel application logs to an AWS Kinesis stream
https://github.com/pod-point/laravel-monolog-kinesis
kinesis laravel logger logging monolog
Last synced: 2 months ago
JSON representation
Simply forward Laravel application logs to an AWS Kinesis stream
- Host: GitHub
- URL: https://github.com/pod-point/laravel-monolog-kinesis
- Owner: Pod-Point
- License: mit
- Created: 2018-06-27T16:07:25.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-03-04T12:17:13.000Z (over 1 year ago)
- Last Synced: 2025-03-22T08:27:06.661Z (7 months ago)
- Topics: kinesis, laravel, logger, logging, monolog
- Language: PHP
- Homepage: https://pod-point.com
- Size: 112 KB
- Stars: 3
- Watchers: 7
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Laravel Monolog Kinesis Driver
[](https://packagist.org/packages/pod-point/laravel-monolog-kinesis)

[](LICENSE.md)
[](https://packagist.org/packages/pod-point/laravel-monolog-kinesis)A simple package to forward Laravel application logs to a Kinesis stream.
## Installation
Require the package with composer:
```bash
composer require pod-point/laravel-monolog-kinesis
```For Laravel < 6.0 you can use `pod-point/laravel-monolog-kinesis:^2.0`.
### Setting up the AWS Kinesis service
Add your AWS key ID, secret and default region to your `config/services.php`:
```php
[
'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`:
```php
['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:
```php
['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:
```php
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
```json
{
"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:
```php
['some_channel' => [
// ...
'formatter' => \App\SimplerCustomFormatter::class,
],],
];
```And define it like so for example:
```php
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.
```php
// ...
'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](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_configuration.html#config-http).
## Permissions
If you are using an AWS Key, remember to add the `kinesis:PutRecord` and `kinesis:PutRecords` permissions to this user.
## Changelog
Please see our [Releases](https://github.com/pod-point/laravel-monolog-kinesis/releases) for more information on what has changed recently.
## Contributing
Please see [CONTRIBUTING](CONTRIBUTING.md) for details.
---
Travel shouldn't damage the earth 🌍
Made with ❤️ at [Pod Point](https://pod-point.com)