<?php
namespace EasyCorp\EasyLog;
use Monolog\Handler\StreamHandler;
class EasyLogHandler extends StreamHandler
{
/**
* @param resource|string $stream
*/
public function __construct($stream)
{
parent::__construct($stream);
$this->formatter = new EasyLogFormatter();
}
/**
* @param array $record
*/
public function handle(array $record): bool
{
throw new \RuntimeException('The method "handle()" should never be called (call "handleBatch()" instead). This is probably caused by a wrong "monolog" configuration. Please read EasyLogHandler README instructions to learn how to configure and use it.');
}
/**
* @param array $records
*/
public function handleBatch(array $records): void
{
// if the log records were filtered (by channel, level, etc.) the array
// no longer contains consecutive numeric keys. Make them consecutive again
// before the log processing (this eases getting the next/previous record)
$records = array_values($records);
if ($records) {
$this->write($this->getFormatter()->formatBatch($records));
}
}
}