ElasticsearchLogstashHandler
extends AbstractHandler
in package
Uses
FormattableHandlerTrait, ProcessableHandlerTrait
Push logs directly to Elasticsearch and format them according to Logstash specification.
This handler dials directly with the HTTP interface of Elasticsearch. This means it will slow down your application if Elasticsearch takes times to answer. Even if all HTTP calls are done asynchronously.
In a development environment, it's fine to keep the default configuration: for each log, an HTTP request will be made to push the log to Elasticsearch.
In a production environment, it's highly recommended to wrap this handler in a handler with buffering capabilities (like the FingersCrossedHandler, or BufferHandler) in order to call Elasticsearch only once with a bulk push. For even better performance and fault tolerance, a proper ELK (https://www.elastic.co/what-is/elk-stack) stack is recommended.
Tags
Table of Contents
- $bubble : bool
- $formatter : FormatterInterface|null
- $level : int
- $processors : array<string|int, callable>
- $client : mixed
- $elasticsearchVersion : mixed
- $endpoint : mixed
- $index : mixed
- $responses : SplObjectStorage<ResponseInterface, null>
- __construct() : mixed
- __destruct() : mixed
- __sleep() : array<string|int, mixed>
- __wakeup() : mixed
- close() : void
- Closes the handler.
- getBubble() : bool
- Gets the bubbling behavior.
- getFormatter() : FormatterInterface
- {@inheritDoc}
- getLevel() : int
- Gets minimum logging level at which this handler will be triggered.
- handle() : bool
- handleBatch() : void
- isHandling() : bool
- {@inheritDoc}
- popProcessor() : callable
- {@inheritDoc}
- pushProcessor() : HandlerInterface
- {@inheritDoc}
- reset() : void
- setBubble() : self
- Sets the bubbling behavior.
- setFormatter() : HandlerInterface
- {@inheritDoc}
- setLevel() : self
- Sets minimum logging level at which this handler will be triggered.
- getDefaultFormatter() : FormatterInterface
- processRecord() : array<string|int, mixed>
- Processes a record.
- resetProcessors() : void
- sendToElasticsearch() : mixed
- wait() : mixed
Properties
$bubble
protected
bool
$bubble
= true
$formatter
protected
FormatterInterface|null
$formatter
$level
protected
int
$level
= MonologLogger::DEBUG
Tags
$processors
protected
array<string|int, callable>
$processors
= []
Tags
$client
private
mixed
$client
$elasticsearchVersion
private
mixed
$elasticsearchVersion
$endpoint
private
mixed
$endpoint
$index
private
mixed
$index
$responses
private
SplObjectStorage<ResponseInterface, null>
$responses
Methods
__construct()
public
__construct([string $endpoint = 'http://127.0.0.1:9200' ][, string $index = 'monolog' ][, HttpClientInterface|null $client = null ][, string|int $level = Logger::DEBUG ][, bool $bubble = true ][, string $elasticsearchVersion = '1.0.0' ]) : mixed
Parameters
- $endpoint : string = 'http://127.0.0.1:9200'
- $index : string = 'monolog'
- $client : HttpClientInterface|null = null
- $level : string|int = Logger::DEBUG
-
The minimum logging level at which this handler will be triggered
- $bubble : bool = true
-
Whether the messages that are handled can bubble up the stack or not
- $elasticsearchVersion : string = '1.0.0'
Return values
mixed —__destruct()
public
__destruct() : mixed
Return values
mixed —__sleep()
public
__sleep() : array<string|int, mixed>
Return values
array<string|int, mixed> —__wakeup()
public
__wakeup() : mixed
Return values
mixed —close()
Closes the handler.
public
close() : void
Return values
void —getBubble()
Gets the bubbling behavior.
public
getBubble() : bool
Return values
bool —true means that this handler allows bubbling. false means that bubbling is not permitted.
getFormatter()
{@inheritDoc}
public
getFormatter() : FormatterInterface
Return values
FormatterInterface —getLevel()
Gets minimum logging level at which this handler will be triggered.
public
getLevel() : int
Tags
Return values
int —handle()
public
handle(array<string|int, mixed> $record) : bool
Parameters
- $record : array<string|int, mixed>
Return values
bool —handleBatch()
public
handleBatch(array<string|int, mixed> $records) : void
Parameters
- $records : array<string|int, mixed>
Return values
void —isHandling()
{@inheritDoc}
public
isHandling(array<string|int, mixed> $record) : bool
Parameters
- $record : array<string|int, mixed>
Return values
bool —popProcessor()
{@inheritDoc}
public
popProcessor() : callable
Return values
callable —pushProcessor()
{@inheritDoc}
public
pushProcessor(callable $callback) : HandlerInterface
Parameters
- $callback : callable
Return values
HandlerInterface —reset()
public
reset() : void
Return values
void —setBubble()
Sets the bubbling behavior.
public
setBubble(bool $bubble) : self
Parameters
- $bubble : bool
-
true means that this handler allows bubbling. false means that bubbling is not permitted.
Return values
self —setFormatter()
{@inheritDoc}
public
setFormatter(FormatterInterface $formatter) : HandlerInterface
Parameters
- $formatter : FormatterInterface
Return values
HandlerInterface —setLevel()
Sets minimum logging level at which this handler will be triggered.
public
setLevel(Level|LevelName|\Psr\Log\LogLevel::* $level) : self
Parameters
- $level : Level|LevelName|\Psr\Log\LogLevel::*
-
Level or level name
Return values
self —getDefaultFormatter()
protected
getDefaultFormatter() : FormatterInterface
Return values
FormatterInterface —processRecord()
Processes a record.
protected
processRecord(array<string|int, mixed> $record) : array<string|int, mixed>
Parameters
- $record : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —resetProcessors()
protected
resetProcessors() : void
Return values
void —sendToElasticsearch()
private
sendToElasticsearch(array<string|int, mixed> $records) : mixed
Parameters
- $records : array<string|int, mixed>
Return values
mixed —wait()
private
wait(bool $blocking) : mixed
Parameters
- $blocking : bool