mirror of
https://github.com/zhamao-robot/zhamao-framework.git
synced 2026-07-22 08:05:34 +08:00
replace console with logger
This commit is contained in:
@@ -9,7 +9,6 @@ use ReflectionException;
|
||||
use ReflectionMethod;
|
||||
use ZM\Annotation\CQ\CommandArgument;
|
||||
use ZM\Annotation\CQ\CQCommand;
|
||||
use ZM\Console\Console;
|
||||
use ZM\Event\EventManager;
|
||||
use ZM\Store\WorkerCache;
|
||||
|
||||
@@ -70,7 +69,7 @@ class CommandInfoUtil
|
||||
if (isset($formats[$trigger])) {
|
||||
$format = $formats[$trigger];
|
||||
} else {
|
||||
Console::warning("未知的命令触发条件:{$trigger}");
|
||||
logger()->warning("未知的命令触发条件:{$trigger}");
|
||||
continue;
|
||||
}
|
||||
foreach ($conditions as $condition) {
|
||||
@@ -140,7 +139,7 @@ class CommandInfoUtil
|
||||
try {
|
||||
$reflection = new ReflectionMethod($annotation->class, $annotation->method);
|
||||
} catch (ReflectionException $e) {
|
||||
Console::warning('命令 ' . $id . ' 注解解析错误:' . $e->getMessage());
|
||||
logger()->warning('命令 ' . $id . ' 注解解析错误:' . $e->getMessage());
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -160,7 +159,7 @@ class CommandInfoUtil
|
||||
];
|
||||
|
||||
if (empty($command['descriptions'])) {
|
||||
Console::warning("命令没有描述信息:{$id}");
|
||||
logger()->warning("命令没有描述信息:{$id}");
|
||||
}
|
||||
|
||||
// 可能的触发条件,顺序会影响命令帮助的生成结果
|
||||
@@ -178,7 +177,7 @@ class CommandInfoUtil
|
||||
}
|
||||
}
|
||||
if (empty($command['triggers'])) {
|
||||
Console::warning("命令没有触发条件:{$id}");
|
||||
logger()->warning("命令没有触发条件:{$id}");
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ class CoroutinePool
|
||||
}
|
||||
go(function () use ($func, $name) {
|
||||
self::$cids[$name][] = Coroutine::getCid();
|
||||
// Console::debug("正在执行协程,当前协程池中有 " . count(self::$cids[$name]) . " 个正在运行的协程: ".implode(", ", self::$cids[$name]));
|
||||
// logger()->debug("正在执行协程,当前协程池中有 " . count(self::$cids[$name]) . " 个正在运行的协程: ".implode(", ", self::$cids[$name]));
|
||||
$func();
|
||||
self::checkCids($name);
|
||||
});
|
||||
|
||||
@@ -10,7 +10,6 @@ use JsonSerializable;
|
||||
use RuntimeException;
|
||||
use Traversable;
|
||||
use ZM\Config\ZMConfig;
|
||||
use ZM\Console\Console;
|
||||
use ZM\Exception\ConfigException;
|
||||
|
||||
class DataProvider
|
||||
@@ -104,7 +103,7 @@ class DataProvider
|
||||
}
|
||||
$name = $r[1];
|
||||
} elseif (count($r) != 1) {
|
||||
Console::warning(zm_internal_errcode('E00057') . '存储失败,文件名只能有一级目录');
|
||||
logger()->warning(zm_internal_errcode('E00057') . '存储失败,文件名只能有一级目录');
|
||||
return false;
|
||||
} else {
|
||||
$name = $r[0];
|
||||
@@ -164,7 +163,7 @@ class DataProvider
|
||||
} elseif ($relative === false) {
|
||||
$list[] = $sub_file;
|
||||
} else {
|
||||
Console::warning(zm_internal_errcode('E00058') . "Relative path is not generated: wrong base directory ({$relative})");
|
||||
logger()->warning(zm_internal_errcode('E00058') . "Relative path is not generated: wrong base directory ({$relative})");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,6 @@ use Symfony\Component\Routing\Matcher\UrlMatcher;
|
||||
use Symfony\Component\Routing\RequestContext;
|
||||
use Symfony\Component\Routing\RouteCollection;
|
||||
use ZM\Config\ZMConfig;
|
||||
use ZM\Console\Console;
|
||||
use ZM\Http\Response;
|
||||
use ZM\Utils\Manager\RouteManager;
|
||||
|
||||
@@ -71,19 +70,19 @@ class HttpUtil
|
||||
}
|
||||
$work = realpath($base_dir) . '/';
|
||||
if (strpos($path, $work) !== 0) {
|
||||
Console::info('[403] ' . $uri);
|
||||
logger()->info('[403] ' . $uri);
|
||||
self::responseCodePage($response, 403);
|
||||
return true;
|
||||
}
|
||||
if (is_dir($path)) {
|
||||
if (mb_substr($uri, -1, 1) != '/') {
|
||||
Console::info('[302] ' . $uri);
|
||||
logger()->info('[302] ' . $uri);
|
||||
$response->redirect($uri . '/', 302);
|
||||
return true;
|
||||
}
|
||||
foreach ($base_index as $vp) {
|
||||
if (is_file($path . '/' . $vp)) {
|
||||
Console::info('[200] ' . $uri);
|
||||
logger()->info('[200] ' . $uri);
|
||||
$exp = strtolower(pathinfo($path . $vp)['extension'] ?? 'unknown');
|
||||
$response->setHeader('Content-Type', ZMConfig::get('file_header')[$exp] ?? 'application/octet-stream');
|
||||
$response->end(file_get_contents($path . $vp));
|
||||
@@ -91,14 +90,14 @@ class HttpUtil
|
||||
}
|
||||
}
|
||||
} elseif (is_file($path)) {
|
||||
Console::info('[200] ' . $uri);
|
||||
logger()->info('[200] ' . $uri);
|
||||
$exp = strtolower(pathinfo($path)['extension'] ?? 'unknown');
|
||||
$response->setHeader('Content-Type', ZMConfig::get('file_header')[$exp] ?? 'application/octet-stream');
|
||||
$response->end(file_get_contents($path));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Console::info('[404] ' . $uri);
|
||||
logger()->info('[404] ' . $uri);
|
||||
self::responseCodePage($response, 404);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -42,13 +42,13 @@ class CronManager
|
||||
$cron = new CronExpression($v->expression);
|
||||
$cron->setMaxIterationCount($v->max_iteration_count);
|
||||
$plain_class = $v->class;
|
||||
Console::debug("Cron task checker starting {$plain_class}:{$v->method}, next run at {$cron->getNextRunDate()->format('Y-m-d H:i:s')}");
|
||||
logger()->debug("Cron task checker starting {$plain_class}:{$v->method}, next run at {$cron->getNextRunDate()->format('Y-m-d H:i:s')}");
|
||||
if ($v->check_delay_time > 60000 || $v->check_delay_time < 1000) {
|
||||
Console::warning(zm_internal_errcode('E00076') . 'Delay time must be between 1000 and 60000, reset to 20000');
|
||||
logger()->warning(zm_internal_errcode('E00076') . 'Delay time must be between 1000 and 60000, reset to 20000');
|
||||
$v->check_delay_time = 20000;
|
||||
}
|
||||
} catch (InvalidArgumentException $e) {
|
||||
Console::error(zm_internal_errcode('E00075') . 'Invalid cron expression or arguments, please check it!');
|
||||
logger()->error(zm_internal_errcode('E00075') . 'Invalid cron expression or arguments, please check it!');
|
||||
throw $e;
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ class CronManager
|
||||
return;
|
||||
}
|
||||
try {
|
||||
Console::debug('Cron: ' . ($cron->isDue() ? 'true' : 'false') . ', last: ' . $cron->getPreviousRunDate()->format('Y-m-d H:i:s') . ', next: ' . $cron->getNextRunDate()->format('Y-m-d H:i:s'));
|
||||
logger()->debug('Cron: ' . ($cron->isDue() ? 'true' : 'false') . ', last: ' . $cron->getPreviousRunDate()->format('Y-m-d H:i:s') . ', next: ' . $cron->getNextRunDate()->format('Y-m-d H:i:s'));
|
||||
if ($cron->isDue()) {
|
||||
if ($v->getStatus() === 0) {
|
||||
self::startExecute($v, $dispatcher, $cron);
|
||||
@@ -91,18 +91,18 @@ class CronManager
|
||||
*/
|
||||
private static function startExecute(Cron $v, EventDispatcher $dispatcher, CronExpression $cron)
|
||||
{
|
||||
Console::verbose("Cron task {$v->class}:{$v->method} is due, running at " . date('Y-m-d H:i:s') . ($v->getRecordNextTime() === 0 ? '' : (', offset ' . (time() - $v->getRecordNextTime()) . 's')));
|
||||
logger()->debug("Cron task {$v->class}:{$v->method} is due, running at " . date('Y-m-d H:i:s') . ($v->getRecordNextTime() === 0 ? '' : (', offset ' . (time() - $v->getRecordNextTime()) . 's')));
|
||||
$v->setStatus(1);
|
||||
$starttime = microtime(true);
|
||||
$pre_next_time = $cron->getNextRunDate()->getTimestamp();
|
||||
$dispatcher->dispatchEvent($v, null, $cron);
|
||||
Console::verbose("Cron task {$v->class}:{$v->method} is done, using " . round(microtime(true) - $starttime, 3) . 's');
|
||||
logger()->debug("Cron task {$v->class}:{$v->method} is done, using " . round(microtime(true) - $starttime, 3) . 's');
|
||||
if ($pre_next_time !== $cron->getNextRunDate()->getTimestamp()) { // 这一步用于判断运行的Cron是否已经覆盖到下一个运行区间
|
||||
if (time() + round($v->check_delay_time / 1000) >= $pre_next_time) { // 假设检测到下一个周期运行时间已经要超过了预计的时间,则警告运行超时
|
||||
Console::warning(zm_internal_errcode('E00077') . 'Cron task ' . $v->class . ':' . $v->method . ' is timeout');
|
||||
logger()->warning(zm_internal_errcode('E00077') . 'Cron task ' . $v->class . ':' . $v->method . ' is timeout');
|
||||
}
|
||||
} else {
|
||||
Console::verbose('Next run at ' . date('Y-m-d H:i:s', $cron->getNextRunDate()->getTimestamp()));
|
||||
logger()->debug('Next run at ' . date('Y-m-d H:i:s', $cron->getNextRunDate()->getTimestamp()));
|
||||
}
|
||||
$v->setRecordNextTime($pre_next_time);
|
||||
$v->setStatus(2);
|
||||
|
||||
@@ -93,12 +93,12 @@ class ModuleManager
|
||||
continue;
|
||||
}
|
||||
if (!is_file($file . '/' . $module_config['module-root-path'] . '/zm.json')) {
|
||||
Console::warning(zm_internal_errcode('E00054') . '模块(插件)文件 ' . $pathinfo['basename'] . ' 无法找到模块配置文件(zm.json)!');
|
||||
logger()->warning(zm_internal_errcode('E00054') . '模块(插件)文件 ' . $pathinfo['basename'] . ' 无法找到模块配置文件(zm.json)!');
|
||||
continue;
|
||||
}
|
||||
$module_file = json_decode(file_get_contents($file . '/' . $module_config['module-root-path'] . '/zm.json'), true);
|
||||
if ($module_file === null) {
|
||||
Console::warning(zm_internal_errcode('E000555') . '模块(插件)文件 ' . $pathinfo['basename'] . ' 无法正常读取模块配置文件(zm.json)!');
|
||||
logger()->warning(zm_internal_errcode('E000555') . '模块(插件)文件 ' . $pathinfo['basename'] . ' 无法正常读取模块配置文件(zm.json)!');
|
||||
continue;
|
||||
}
|
||||
$module_config['phar-path'] = $v;
|
||||
@@ -187,12 +187,12 @@ class ModuleManager
|
||||
{
|
||||
$module_root_path = realpath(DataProvider::getSourceRootDir() . '/vendor/composer/' . $v['install-path'] . '/' . $module_path);
|
||||
if ($module_root_path === false) {
|
||||
Console::warning(zm_internal_errcode('E00055') . '无法找到Composer发布的插件配置路径在包 `' . $v['name'] . '` 中!');
|
||||
logger()->warning(zm_internal_errcode('E00055') . '无法找到Composer发布的插件配置路径在包 `' . $v['name'] . '` 中!');
|
||||
return null;
|
||||
}
|
||||
$json = json_decode(file_get_contents($module_root_path . '/zm.json'), true);
|
||||
if ($json === null) {
|
||||
Console::warning(zm_internal_errcode('E00054') . 'Composer包内无法正常读取 ' . $v['name'] . ' 的内的配置文件(zm.json)!');
|
||||
logger()->warning(zm_internal_errcode('E00054') . 'Composer包内无法正常读取 ' . $v['name'] . ' 的内的配置文件(zm.json)!');
|
||||
return null;
|
||||
}
|
||||
if (!isset($json['name'])) {
|
||||
@@ -211,7 +211,7 @@ class ModuleManager
|
||||
}
|
||||
}
|
||||
if (!isset($json['namespace'])) {
|
||||
Console::warning(zm_internal_errcode('E00055') . '无法获取Composer发布的模块命名空间!');
|
||||
logger()->warning(zm_internal_errcode('E00055') . '无法获取Composer发布的模块命名空间!');
|
||||
return null;
|
||||
}
|
||||
return $json;
|
||||
|
||||
@@ -8,7 +8,6 @@ use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\Routing\RouteCollection;
|
||||
use ZM\Annotation\Http\Controller;
|
||||
use ZM\Annotation\Http\RequestMapping;
|
||||
use ZM\Console\Console;
|
||||
use ZM\Http\StaticFileHandler;
|
||||
|
||||
/**
|
||||
@@ -37,7 +36,7 @@ class RouteManager
|
||||
}
|
||||
$tail = trim($vss->route, '/');
|
||||
$route_name = $prefix . ($tail === '' ? '' : '/') . $tail;
|
||||
Console::debug('添加路由:' . $route_name);
|
||||
logger()->debug('添加路由:' . $route_name);
|
||||
$route = new Route($route_name, ['_class' => $class, '_method' => $method]);
|
||||
$route->setMethods($vss->request_method);
|
||||
|
||||
@@ -48,7 +47,7 @@ class RouteManager
|
||||
{
|
||||
$tail = trim($route, '/');
|
||||
$route_name = ($tail === '' ? '' : '/') . $tail . '/{filename}';
|
||||
Console::debug('添加静态文件路由:' . $route_name);
|
||||
logger()->debug('添加静态文件路由:' . $route_name);
|
||||
$route = new Route($route_name, ['_class' => __CLASS__, '_method' => 'onStaticRoute'], [], compact('path'));
|
||||
|
||||
self::$routes->add(md5($route_name), $route);
|
||||
|
||||
@@ -6,8 +6,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace ZM\Utils\Manager;
|
||||
|
||||
use ZM\Console\Console;
|
||||
|
||||
class TaskManager
|
||||
{
|
||||
/**
|
||||
@@ -19,7 +17,7 @@ class TaskManager
|
||||
public static function runTask(string $task_name, int $timeout = -1, ...$params)
|
||||
{
|
||||
if (!isset(server()->setting['task_worker_num'])) {
|
||||
Console::warning(zm_internal_errcode('E00056') . '未开启 TaskWorker 进程,请先修改 global 配置文件启用!');
|
||||
logger()->warning(zm_internal_errcode('E00056') . '未开启 TaskWorker 进程,请先修改 global 配置文件启用!');
|
||||
return false;
|
||||
}
|
||||
$r = server()->taskwait(['task' => $task_name, 'params' => $params], $timeout);
|
||||
|
||||
@@ -8,7 +8,6 @@ use Exception;
|
||||
use Swoole\Coroutine;
|
||||
use ZM\Annotation\CQ\CQCommand;
|
||||
use ZM\Annotation\Swoole\OnPipeMessageEvent;
|
||||
use ZM\Console\Console;
|
||||
use ZM\Event\EventDispatcher;
|
||||
use ZM\Event\EventManager;
|
||||
use ZM\Store\LightCache;
|
||||
@@ -28,7 +27,7 @@ class WorkerManager
|
||||
$server = server();
|
||||
switch ($data['action'] ?? '') {
|
||||
case 'add_short_command':
|
||||
Console::verbose('Adding short command ' . $data['data'][0]);
|
||||
logger()->debug('Adding short command ' . $data['data'][0]);
|
||||
$obj = new CQCommand();
|
||||
$obj->method = quick_reply_closure($data['data'][1]);
|
||||
$obj->match = $data['data'][0];
|
||||
@@ -115,7 +114,7 @@ class WorkerManager
|
||||
{
|
||||
$obj = ['action' => $action, 'data' => $data];
|
||||
if (server()->worker_id === -1 && server()->getManagerPid() != posix_getpid()) {
|
||||
Console::warning(zm_internal_errcode('E00022') . 'Cannot send worker action from master or manager process!');
|
||||
logger()->warning(zm_internal_errcode('E00022') . 'Cannot send worker action from master or manager process!');
|
||||
return;
|
||||
}
|
||||
if (server()->worker_id == $worker_id) {
|
||||
@@ -131,7 +130,7 @@ class WorkerManager
|
||||
public static function resumeAllWorkerCoroutines()
|
||||
{
|
||||
if (server()->worker_id === -1) {
|
||||
Console::warning("Cannot call '" . __FUNCTION__ . "' in non-worker process!");
|
||||
logger()->warning("Cannot call '" . __FUNCTION__ . "' in non-worker process!");
|
||||
return;
|
||||
}
|
||||
foreach ((LightCacheInside::get('wait_api', 'wait_api') ?? []) as $v) {
|
||||
|
||||
@@ -10,7 +10,6 @@ use ZM\Annotation\CQ\CommandArgument;
|
||||
use ZM\Annotation\CQ\CQCommand;
|
||||
use ZM\API\CQ;
|
||||
use ZM\Config\ZMConfig;
|
||||
use ZM\Console\Console;
|
||||
use ZM\Entity\InputArguments;
|
||||
use ZM\Entity\MatchResult;
|
||||
use ZM\Event\EventManager;
|
||||
@@ -37,7 +36,7 @@ class MessageUtil
|
||||
}
|
||||
$path = realpath($path);
|
||||
if ($path === false) {
|
||||
Console::warning(zm_internal_errcode('E00059') . '指定的路径错误不存在!');
|
||||
logger()->warning(zm_internal_errcode('E00059') . '指定的路径错误不存在!');
|
||||
return false;
|
||||
}
|
||||
$files = [];
|
||||
@@ -46,7 +45,7 @@ class MessageUtil
|
||||
if ($v->type == 'image') {
|
||||
$result = ZMRequest::downloadFile($v->params['url'], $path . '/' . $v->params['file']);
|
||||
if ($result === false) {
|
||||
Console::warning(zm_internal_errcode('E00060') . '图片 ' . $v->params['url'] . ' 下载失败!');
|
||||
logger()->warning(zm_internal_errcode('E00060') . '图片 ' . $v->params['url'] . ' 下载失败!');
|
||||
return false;
|
||||
}
|
||||
$files[] = $path . '/' . $v->params['file'];
|
||||
|
||||
@@ -6,11 +6,11 @@ namespace ZM\Utils;
|
||||
|
||||
use Swoole\Process;
|
||||
use Swoole\Server;
|
||||
use ZM\Console\Console;
|
||||
|
||||
/**
|
||||
* 炸毛框架的Linux signal管理类
|
||||
* Class SignalListener
|
||||
*
|
||||
* @since 2.5
|
||||
*/
|
||||
class SignalListener
|
||||
@@ -22,15 +22,15 @@ class SignalListener
|
||||
*/
|
||||
public static function signalMaster(Server $server)
|
||||
{
|
||||
Console::debug('Listening Master SIGINT');
|
||||
logger()->debug('正在监听 Master 进程 SIGINT');
|
||||
Process::signal(SIGINT, function () use ($server) {
|
||||
if (zm_atomic('_int_is_reload')->get() === 1) {
|
||||
zm_atomic('_int_is_reload')->set(0);
|
||||
$server->reload();
|
||||
} else {
|
||||
echo "\r";
|
||||
Console::warning('Server interrupted(SIGINT) on Master.');
|
||||
Console::warning('Server will be shutdown.');
|
||||
logger()->notice('Master 进程收到中断信号 SIGINT');
|
||||
logger()->notice('正在停止服务器');
|
||||
Process::kill($server->master_pid, SIGTERM);
|
||||
}
|
||||
});
|
||||
@@ -44,16 +44,16 @@ class SignalListener
|
||||
$func = function () {
|
||||
if (\server()->master_pid == \server()->manager_pid) {
|
||||
echo "\r";
|
||||
Console::warning('Server interrupted(SIGINT) on Manager.');
|
||||
logger()->notice('Manager 进程收到中断信号 SIGINT');
|
||||
swoole_timer_after(2, function () {
|
||||
Process::kill(posix_getpid(), SIGTERM);
|
||||
});
|
||||
} else {
|
||||
Console::verbose('Interrupted in manager!');
|
||||
logger()->debug('Manager 已中断');
|
||||
}
|
||||
self::processKillerPrompt();
|
||||
};
|
||||
Console::debug('Listening Manager SIGINT');
|
||||
logger()->debug('正在监听 Manager 进程 SIGINT');
|
||||
if (version_compare(SWOOLE_VERSION, '4.6.7') >= 0) {
|
||||
Process::signal(SIGINT, $func);
|
||||
} elseif (extension_loaded('pcntl')) {
|
||||
@@ -63,21 +63,22 @@ class SignalListener
|
||||
|
||||
/**
|
||||
* 监听Worker/TaskWorker进程的Ctrl+C
|
||||
*
|
||||
* @param int $worker_id 当前进程的ID
|
||||
*/
|
||||
public static function signalWorker(Server $server, int $worker_id)
|
||||
{
|
||||
Console::debug('Listening Worker #' . $worker_id . ' SIGINT');
|
||||
logger()->debug('正在监听 Worker#{worker_id} 进程 SIGINT', compact('worker_id'));
|
||||
Process::signal(SIGINT, function () use ($server) {
|
||||
if ($server->master_pid == $server->worker_pid) { // 当Swoole以单进程模型运行的时候,Worker需要监听杀死的信号
|
||||
if ($server->master_pid === $server->worker_pid) { // 当Swoole以单进程模型运行的时候,Worker需要监听杀死的信号
|
||||
echo "\r";
|
||||
Console::warning('Server interrupted(SIGINT) on Worker.');
|
||||
logger()->notice('Worker 进程收到中断信号 SIGINT');
|
||||
swoole_timer_after(2, function () {
|
||||
Process::kill(posix_getpid(), SIGTERM);
|
||||
});
|
||||
self::processKillerPrompt();
|
||||
}
|
||||
// Console::verbose("Interrupted in worker");
|
||||
// logger()->debug("Interrupted in worker");
|
||||
// do nothing
|
||||
});
|
||||
}
|
||||
@@ -101,7 +102,7 @@ class SignalListener
|
||||
}
|
||||
} else {
|
||||
echo "\r";
|
||||
Console::log('再按' . (5 - self::$manager_kill_time) . '次Ctrl+C所有Worker进程就会被强制杀死', 'red');
|
||||
logger()->notice('请再按 {count} 次 Ctrl+C 以强制杀死所有 Worker 进程', ['count' => 5 - self::$manager_kill_time]);
|
||||
}
|
||||
}
|
||||
++self::$manager_kill_time;
|
||||
|
||||
@@ -43,7 +43,7 @@ class Terminal
|
||||
});
|
||||
$dispatcher->dispatchEvents($it);
|
||||
if ($dispatcher->store !== 'none' && $cmd !== '') {
|
||||
Console::info('Command not found: ' . $cmd);
|
||||
logger()->info('Command not found: ' . $cmd);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -67,7 +67,7 @@ class Terminal
|
||||
|
||||
public static function init()
|
||||
{
|
||||
Console::debug('Initializing Terminal...');
|
||||
logger()->debug('Initializing Terminal...');
|
||||
foreach ((EventManager::$events[TerminalCommand::class] ?? []) as $v) {
|
||||
if ($v->command == 'help') {
|
||||
self::$default_commands = true;
|
||||
@@ -80,7 +80,7 @@ class Terminal
|
||||
foreach ($reflection->getMethods() as $v) {
|
||||
$r = $reader->getMethodAnnotation($v, TerminalCommand::class);
|
||||
if ($r !== null) {
|
||||
Console::debug('adding command ' . $r->command);
|
||||
logger()->debug('adding command ' . $r->command);
|
||||
$r->class = Terminal::class;
|
||||
$r->method = $v->getName();
|
||||
EventManager::addEvent(TerminalCommand::class, $r);
|
||||
@@ -121,7 +121,7 @@ class Terminal
|
||||
echo $obj;
|
||||
return;
|
||||
}
|
||||
Console::warning('你还没有安装 league/climate 组件,无法使用此功能!');
|
||||
logger()->warning('你还没有安装 league/climate 组件,无法使用此功能!');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -129,13 +129,9 @@ class Terminal
|
||||
*/
|
||||
public function testlog()
|
||||
{
|
||||
Console::log(date('[H:i:s]') . ' [L] This is normal msg. (0)');
|
||||
Console::error('This is error msg. (0)');
|
||||
Console::warning('This is warning msg. (1)');
|
||||
Console::info('This is info msg. (2)');
|
||||
Console::success('This is success msg. (2)');
|
||||
Console::verbose('This is verbose msg. (3)');
|
||||
Console::debug('This is debug msg. (4)');
|
||||
foreach (['debug', 'info', 'notice', 'warning', 'error', 'critical', 'alert', 'emergency'] as $level) {
|
||||
logger()->log($level, 'This is a {level} message.', compact('level'));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -157,12 +153,13 @@ class Terminal
|
||||
*/
|
||||
public function level(array $it)
|
||||
{
|
||||
$level = intval(is_numeric($it[1] ?? 99) ? ($it[1] ?? 99) : 99);
|
||||
if ($level > 4 || $level < 0) {
|
||||
Console::warning("Usage: 'level 0|1|2|3|4'");
|
||||
} else {
|
||||
Console::setLevel($level) || Console::success('Success!!');
|
||||
}
|
||||
logger()->warning('Sorry, this function is not available yet.');
|
||||
// $level = intval(is_numeric($it[1] ?? 99) ? ($it[1] ?? 99) : 99);
|
||||
// if ($level > 4 || $level < 0) {
|
||||
// Console::warning("Usage: 'level 0|1|2|3|4'");
|
||||
// } else {
|
||||
// Console::setLevel($level) || Console::success('Success!!');
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -182,7 +179,7 @@ class Terminal
|
||||
*/
|
||||
public function echoI(array $it)
|
||||
{
|
||||
Console::info($it[1]);
|
||||
logger()->info($it[1]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -5,8 +5,8 @@ declare(strict_types=1);
|
||||
namespace ZM\Utils;
|
||||
|
||||
use Exception;
|
||||
use Psr\Log\LogLevel;
|
||||
use Swoole\Process;
|
||||
use ZM\Console\Console;
|
||||
use ZM\Framework;
|
||||
use ZM\Store\Lock\SpinLock;
|
||||
use ZM\Store\ZMAtomic;
|
||||
@@ -32,9 +32,9 @@ class ZMUtil
|
||||
if (SpinLock::tryLock('_stop_signal') === false) {
|
||||
return;
|
||||
}
|
||||
Console::warning(Console::setColor('Stopping server...', 'red'));
|
||||
if (Console::getLevel() >= 4) {
|
||||
Console::trace();
|
||||
logger()->notice('正在停止服务器...');
|
||||
if (zm_config('logging.level') === LogLevel::DEBUG) {
|
||||
debug_print_backtrace();
|
||||
}
|
||||
ZMAtomic::get('stop_signal')->set($error_exit ? 2 : 1);
|
||||
server()->shutdown();
|
||||
|
||||
Reference in New Issue
Block a user