12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- <?php
- /**
- * This file is part of webman.
- *
- * Licensed under The MIT License
- * For full copyright and license information, please see the MIT-LICENSE.txt
- * Redistributions of files must retain the above copyright notice.
- *
- * @author walkor<[email protected]>
- * @copyright walkor<[email protected]>
- * @link http://www.workerman.net/
- * @license http://www.opensource.org/licenses/mit-license.php MIT License
- */
- namespace support\bootstrap;
- use Webman\Bootstrap;
- use Monolog\Logger;
- /**
- * Class Redis
- * @package support
- *
- * @method static void log($level, $message, array $context = [])
- * @method static void debug($message, array $context = [])
- * @method static void info($message, array $context = [])
- * @method static void notice($message, array $context = [])
- * @method static void warning($message, array $context = [])
- * @method static void error($message, array $context = [])
- * @method static void critical($message, array $context = [])
- * @method static void alert($message, array $context = [])
- * @method static void emergency($message, array $context = [])
- */
- class Log implements Bootstrap {
- /**
- * @var array
- */
- protected static $_instance = [];
- /**
- * @param \Workerman\Worker $worker
- * @return void
- */
- public static function start($worker)
- {
- $configs = config('log', []);
- foreach ($configs as $channel => $config) {
- $logger = static::$_instance[$channel] = new Logger($channel);
- foreach ($config['handlers'] as $handler_config) {
- $handler = new $handler_config['class'](... \array_values($handler_config['constructor']));
- if (isset($handler_config['formatter'])) {
- $formatter = new $handler_config['formatter']['class'](... \array_values($handler_config['formatter']['constructor']));
- $handler->setFormatter($formatter);
- }
- $logger->pushHandler($handler);
- }
- }
- }
- /**
- * @param string $name
- * @return Logger;
- */
- public static function channel($name = 'default')
- {
- return static::$_instance[$name] ?? null;
- }
- /**
- * @param $name
- * @param $arguments
- * @return mixed
- */
- public static function __callStatic($name, $arguments)
- {
- return static::channel('default')->{$name}(... $arguments);
- }
- }
|