for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php /** MicroLogger */
namespace Micro\Logger\Driver;
use Micro\Logger\Adapter;
/**
* Logger manager
*
* @author Oleg Lunegov <[email protected]>
* @link https://github.com/linpax/microphp-framework
* @copyright Copyright (c) 2013 Oleg Lunegov
* @license https://github.com/linpax/microphp-framework/blob/master/LICENSE
* @package Micro
* @subpackage Logger
* @version 1.0
* @since 1.0
*/
class Logger
{
/** @var array $supportedLevels supported logger levels */
public static $supportedLevels = [
'emergency',
'alert',
'critical',
'error',
'warning',
'notice',
'info',
'debug'
];
/** @var Adapter[] $loggers defined loggers */
protected $loggers = array();
* Export loggers
* @access public
* @param array $loggers
* @result void
public function __construct(array $loggers = [])
foreach ($loggers AS $name => $log) {
if (empty($log['class']) || !class_exists($log['class'])) {
continue;
}
if (empty($log['levels'])) {
$this->loggers[$name] = new $log['class']($log);
* Send message to loggers
* @param string $level logger level
* @param string $message message to write
* @throws \Micro\Base\Exception
public function send($level, $message)
foreach ($this->loggers AS $log) {
/** @var Adapter $log logger */
if ($log->isSupportedLevel($level)) {
$log->sendMessage($level, $message);