mirror of
https://github.com/Karaka-Management/Resources.git
synced 2026-01-11 13:28:40 +00:00
120 lines
2.8 KiB
PHP
120 lines
2.8 KiB
PHP
<?php
|
|
|
|
namespace PayPal\Core;
|
|
|
|
use PayPal\Log\PayPalLogFactory;
|
|
use Psr\Log\LoggerInterface;
|
|
|
|
/**
|
|
* 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('PayPal\Log\PayPalLogFactory', class_implements($config['log.AdapterFactory'])) ? $config['log.AdapterFactory'] : '\PayPal\Log\PayPalDefaultLogFactory';
|
|
/** @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);
|
|
}
|
|
}
|
|
}
|