SAREhub/PHP_Commons

View on GitHub
src/SAREhub/Commons/Logger/BasicLoggerFactory.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace SAREhub\Commons\Logger;

use Monolog\Handler\HandlerInterface;
use Monolog\Logger;

class BasicLoggerFactory implements LoggerFactory
{

    private $handlers = [];
    private $processors = [];

    /**
     * @return BasicLoggerFactory
     */
    public static function newInstance()
    {
        return new self();
    }

    /**
     * @param HandlerInterface $handler
     * @return $this
     */
    public function addHandler(HandlerInterface $handler)
    {
        $this->handlers[] = $handler;
        return $this;
    }

    /**
     * @param callable $processor
     * @return $this
     */
    public function addProcessor(callable $processor)
    {
        $this->processors[] = $processor;
        return $this;
    }

    public function create($name)
    {
        return new Logger($name, $this->getHandlers(), $this->getProcessors());
    }

    public function getHandlers()
    {
        return $this->handlers;
    }

    public function getProcessors()
    {
        return $this->processors;
    }
}