Documentation

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
author

Grégoire Pineau lyrixx@lyrixx.info

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

$level

protected int $level = MonologLogger::DEBUG
Tags
phpstan-var

Level

$processors

protected array<string|int, callable> $processors = []
Tags
phpstan-var

array<ProcessorInterface|callable(Record): Record>

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

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.

getLevel()

Gets minimum logging level at which this handler will be triggered.

public getLevel() : int
Tags
phpstan-return

Level

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

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

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

processRecord()

Processes a record.

protected processRecord(array<string|int, mixed> $record) : array<string|int, mixed>
Parameters
$record : array<string|int, mixed>
Tags
phpstan-param

Record $record

phpstan-return

Record

Return values
array<string|int, mixed>

sendToElasticsearch()

private sendToElasticsearch(array<string|int, mixed> $records) : mixed
Parameters
$records : array<string|int, mixed>
Return values
mixed

Search results