lordoffreak / elastica-logzio
PHP client to save realtime logs to Logz.io
Installs: 3 600
Dependents: 1
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 2
Open Issues: 1
Requires
- php: >=5.6.4 || ^7.1
- guzzlehttp/guzzle: ^6.2
- ruflin/elastica: ^5.3
Requires (Dev)
- phpunit/phpunit: ^7
This package is not auto-updated.
Last update: 2024-12-08 04:07:35 UTC
README
PHP library to send realtime logs to Logz.io, an ELK as a service.
Installing
Install with composer:
$ composer require lordoffreak/elastica-logzio
Usage
First of all, you need an account on Logz.io. Then, go to you profile settings and get your api key (token).
Configure
To configure the library, you just need to get an instance of LogzIO\Transport\LogzIOGuzzle
, set the token
and the the type
. You need to do it once per Transport. After that create an instance of LogzIO\LogzIOElasticaClient
and use it as a normal Elastica\Client
client.
<?php use LogzIO\LogzIOElasticaClient; use LogzIO\Transport\LogzIOGuzzle; $config = []; $config['transport'] = new LogzIOGuzzle(); $config['transport']->setToken('YOUR_API_KEY'); $config['transport']->setType('record'); $client = new LogzIOElasticaClient($config);
Sending logs
To send a log, you need to get an instance of LogzIO\LogzIOElasticaClient
and use it as a normal Elastica\Client
client:
<?php use LogzIO\LogzIOElasticaClient; use LogzIO\Transport\LogzIOGuzzle; $config = []; $config['transport'] = new LogzIOGuzzle(); $config['transport']->setToken('YOUR_API_KEY'); $config['transport']->setType('record'); $client = new LogzIOElasticaClient($config); $data = [ 'name' => 'Alejandro', 'surname' => 'Tabares', ]; // First parameter is the id of document. $documents = [ new \Elastica\Document($id, $data) ]; $resp = $client->addDocuments([$documents);
Usage with Monolog
As described in https://github.com/Seldaek/monolog/blob/master/src/Monolog/Handler/ElasticSearchHandler.php#L23 just:
<?php use LogzIO\LogzIOElasticaClient; use LogzIO\Transport\LogzIOGuzzle; // Your type. $type = 'record'; $config = []; $config['transport'] = new LogzIOGuzzle(); $config['transport']->setToken('YOUR_API_KEY'); $config['transport']->setType($type); $client = new LogzIOElasticaClient($config); $options = array( 'index' => 'YOUR_INDEX_NAME', 'type' => $type, ); $handler = new ElasticSearchHandler($client, $options); $log = new Logger('application'); $log->pushHandler($handler);
Contributing
To contribute, create a fork, make your changes, make tests, test and create a PR.
License
This library is licenced under MIT.