<?php
/**
 * LoggerAggregatorInterfrace file
 *
 * Copyright (c) 2016, Kiril Savchev
 * All rights reserved.
 *
 * @category Libs
 * @package Logger
 *
 * @author Kiril Savchev <
[email protected]>
 *
 * @license https://opensource.org/licenses/BSD-3-Clause BSD 3 License
 * @link http://ifthenelse.info
 */
namespace Ite\Logger;
use Psr\Log\LoggerInterface;
/**
 * LoggerAggragator interface
 *
 * Defines the LoggerAggregator class behaviour, making mandatory the concrete
 * class to be a PSR Logger by extending Psr\Log\LoggerInterface and adds
 * methods to attach and remove nested loggers.
 *
 * @uses psr\log
 *
 * @version 1.0
 *
 * @author Kiril Savchev <k.savchev@gmail>
 */
interface LoggerAggregatorInterfrace extends LoggerInterface {
        /**
         * Add logger
         *
         * @param LoggerInterface $logger
         * @param mixed $level [Optional] Level the logger is attached to. Default '*' - to all levels
         */
        public function attachLogger(LoggerInterface $logger, $level = '*');
        /**
         * Remove logger
         *
         * @param LoggerInterface $logger
         */
        public function detachLogger(LoggerInterface $logger);
}