| 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);    }}
 |