61 lines
1.7 KiB
PHP
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 ];
|
||
|
}
|
||
|
}
|