<?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 ]; } }