psCacheWarmer/Core/Logging.php
2020-09-14 17:14:07 +02:00

61 lines
1.7 KiB
PHP

<?php
/**
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* @copyright (c) ProudCommerce | 2020
* @link www.proudcommerce.com
* @package psCacheWarmer
* @version 3.1.0
**/
namespace ProudCommerce\CacheWarmer\Core;
use \OxidEsales\Eshop\Core\Registry;
use \Monolog\Logger;
use \Monolog\Handler\StreamHandler;
/**
* Class Logging
*
* @package ProudCommerce\CacheWarmer\Core
*/
class Logging
{
/**
* @var array
*/
protected static $_aLogger = [];
/**
* @param string $sLogger
* @param string $sPath
* @param string $sLogLevel
*
* @return mixed
* @throws \Exception
*/
public static function getLogger(string $sLogger = '', string $sPath = '', string $sLogLevel = ''): Logger
{
$sLogger = (!empty($sLogger) ? $sLogger : 'OXID Logger');
if (!array_key_exists($sLogger, self::$_aLogger)) {
$sPath = ((!empty($sPath)) ? $sPath : Registry::getConfig()->getLogsDir() . 'oxideshop.log');
$sLogLevel = strtoupper($sLogLevel);
$sLogLevel = ((!empty($sLogLevel) && defined("Logger::$sLogLevel")) ? constant("Logger::$sLogLevel") : Logger::DEBUG);
self::$_aLogger[ $sLogger ] = new Logger($sLogger);
self::$_aLogger[ $sLogger ]->pushHandler(
new StreamHandler(
$sPath,
$sLogLevel
)
);
}
return self::$_aLogger[ $sLogger ];
}
}