OpenXE/classes/Components/Logger/MemoryLogger.php
2021-05-21 08:49:41 +02:00

65 lines
1.4 KiB
PHP

<?php
declare(strict_types=1);
namespace Xentral\Components\Logger;
use Xentral\Components\Logger\Context\ContextHelper;
use Xentral\Components\Logger\Handler\MemoryLogHandler;
final class MemoryLogger extends AbstractLogger
{
/** @var MemoryLogHandler $handler */
private $handler;
/** @var Logger $logger */
private $logger;
/**
* MemoryLogger constructor.
*
* @param ContextHelper $contextHelper
*/
public function __construct(ContextHelper $contextHelper)
{
$this->handler = new MemoryLogHandler('debug');
$this->logger = new Logger($contextHelper);
$this->logger->pushHandler($this->handler);
}
/**
* Logs with an arbitrary level.
*
* @param mixed $level
* @param string $message
* @param array $context
*
* @return void
*/
public function log($level, $message, array $context = []): void
{
$this->logger->log($level, $message, $context);
}
/**
* @return array
*/
public function getMessages(): array
{
return $this->handler->getMessages();
}
/**
* @return array
*/
public function getContexts(): array
{
$contextArray = [];
foreach ($this->handler->getContexts() as $context) {
$contextArray[] = $context->getDump();
}
return $contextArray;
}
}