49 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
declare(strict_types=1);
 | 
						|
 | 
						|
namespace Yansongda\Pay;
 | 
						|
 | 
						|
use Yansongda\Pay\Contract\ConfigInterface;
 | 
						|
use Yansongda\Pay\Contract\LoggerInterface;
 | 
						|
use Yansongda\Pay\Exception\ContainerException;
 | 
						|
use Yansongda\Pay\Exception\InvalidConfigException;
 | 
						|
use Yansongda\Pay\Exception\ServiceNotFoundException;
 | 
						|
 | 
						|
/**
 | 
						|
 * @method static void emergency($message, array $context = [])
 | 
						|
 * @method static void alert($message, array $context = [])
 | 
						|
 * @method static void critical($message, array $context = [])
 | 
						|
 * @method static void error($message, array $context = [])
 | 
						|
 * @method static void warning($message, array $context = [])
 | 
						|
 * @method static void notice($message, array $context = [])
 | 
						|
 * @method static void info($message, array $context = [])
 | 
						|
 * @method static void debug($message, array $context = [])
 | 
						|
 * @method static void log($message, array $context = [])
 | 
						|
 */
 | 
						|
class Logger
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * @throws ContainerException
 | 
						|
     * @throws ServiceNotFoundException
 | 
						|
     * @throws InvalidConfigException
 | 
						|
     */
 | 
						|
    public static function __callStatic(string $method, array $args): void
 | 
						|
    {
 | 
						|
        if (!Pay::hasContainer() || !Pay::has(LoggerInterface::class)
 | 
						|
            || false === Pay::get(ConfigInterface::class)->get('logger.enable', false)) {
 | 
						|
            return;
 | 
						|
        }
 | 
						|
 | 
						|
        $class = Pay::get(LoggerInterface::class);
 | 
						|
 | 
						|
        if ($class instanceof \Psr\Log\LoggerInterface || $class instanceof \Yansongda\Supports\Logger) {
 | 
						|
            $class->{$method}(...$args);
 | 
						|
 | 
						|
            return;
 | 
						|
        }
 | 
						|
 | 
						|
        throw new InvalidConfigException(Exception\Exception::LOGGER_CONFIG_ERROR);
 | 
						|
    }
 | 
						|
}
 |