Файл: sngine-v2.8/Script/includes/libs/PayPal/paypal/rest-api-sdk-php/lib/PayPal/Core/PayPalLoggingManager.php
Строк: 116
<?php
namespace PayPalCore;
use PayPalLogPayPalLogFactory;
use PsrLogLoggerInterface;
/**
* Simple Logging Manager.
* This does an error_log for now
* Potential frameworks to use are PEAR logger, log4php from Apache
*/
class PayPalLoggingManager
{
/**
* @var array of logging manager instances with class name as key
*/
private static $instances = array();
/**
* The logger to be used for all messages
*
* @var LoggerInterface
*/
private $logger;
/**
* Logger Name
*
* @var string
*/
private $loggerName;
/**
* Returns the singleton object
*
* @param string $loggerName
* @return $this
*/
public static function getInstance($loggerName = __CLASS__)
{
if (array_key_exists($loggerName, PayPalLoggingManager::$instances)) {
return PayPalLoggingManager::$instances[$loggerName];
}
$instance = new self($loggerName);
PayPalLoggingManager::$instances[$loggerName] = $instance;
return $instance;
}
/**
* Default Constructor
*
* @param string $loggerName Generally represents the class name.
*/
private function __construct($loggerName)
{
$config = PayPalConfigManager::getInstance()->getConfigHashmap();
// Checks if custom factory defined, and is it an implementation of @PayPalLogFactory
$factory = array_key_exists('log.AdapterFactory', $config) && in_array('PayPalLogPayPalLogFactory', class_implements($config['log.AdapterFactory'])) ? $config['log.AdapterFactory'] : 'PayPalLogPayPalDefaultLogFactory';
/** @var PayPalLogFactory $factoryInstance */
$factoryInstance = new $factory();
$this->logger = $factoryInstance->getLogger($loggerName);
$this->loggerName = $loggerName;
}
/**
* Log Error
*
* @param string $message
*/
public function error($message)
{
$this->logger->error($message);
}
/**
* Log Warning
*
* @param string $message
*/
public function warning($message)
{
$this->logger->warning($message);
}
/**
* Log Info
*
* @param string $message
*/
public function info($message)
{
$this->logger->info($message);
}
/**
* Log Fine
*
* @param string $message
*/
public function fine($message)
{
$this->info($message);
}
/**
* Log Debug
*
* @param string $message
*/
public function debug($message)
{
$config = PayPalConfigManager::getInstance()->getConfigHashmap();
// Disable debug in live mode.
if (array_key_exists('mode', $config) && $config['mode'] != 'live') {
$this->logger->debug($message);
}
}
}