# Console 控制台

Console 类所在命名空间:\ZM\Console\Console

Console 类为框架的终端输出管理类。

# 设置 Log 输出等级

输出等级 控制了输出到命令行的内容的重要性。在框架的输出中,消息有以下几种不同等级的类别

  • error / log: 0
  • warning: 1
  • info / success: 2
  • verbose: 3
  • debug: 4

输出等级设置后显示的消息类别为小于等于当前 log 的。假设你将 log 等级设置为 3,你可以看到除 debug 外的所有 log 内容。

通过配置文件 global.php 中的 init_atomics -> info_level 的数值你可以更改框架的默认 log 等级(默认为 2)。

你也可以在启动框架的命令行中添加参数来切换 log 等级:

vendor/bin/start server --log-error # 以 error 等级启动框架
vendor/bin/start server --log-warning # 以 warning 等级启动框架
vendor/bin/start server --log-info # 以 info 等级启动框架
vendor/bin/start server --log-verbose # 以 verbose 等级启动框架
vendor/bin/start server --log-debug # 以 debug 等级启动框架
1
2
3
4
5

# 使用 Log 输出内容

作为模块开发者的你,你可以主动调用框架内的 Console 类输出信息到终端。

# Console::log()

输出 0 级别的普通 log。

  • 参数:$msg, $color,分别为内容和字体颜色。

此 log 不会被 info_level 所限制,无论如何也会输出到终端。

# Console::error()

输出 error 级别的红色醒目 log。一般此 log 为框架内部出现不可忍受的错误,比如内存不足、PHP fatal error 等错误。

  • 参数:$msg

此 log 不会被 info_level 所限制,无论如何也会输出到终端。

# Console::warning()

输出 warning 级别的 log。

注意

框架内出现的用户态异常,比如无法发送 API、无法连接数据库等错误,都是 warning 错误,不会导致框架崩溃或功能错误的异常情况建议都使用 warning 输出而不是 error。

# Console::info()

输出 info 级别的 log。

# Console::success()

输出 success 级别的log。

# Console::verbose()

输出 verbose 级别的 log。

# Console::debug()

输出 debug 级别的 log。

# Console::stackTrace()

输出栈追踪信息。

# Console::setColor()

返回:彩色的字符串。

  • string: 要变颜色的字符串
  • color: 要变的颜色。支持 redgreenyellowresetbluegraygoldpinklightbluelightlightblue
Console::log("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)");
Console::stackTrace();
$str = Console::setColor("I am gold color.", "gold");
1
2
3
4
5
6
7
8
9

# 终端交互命令

炸毛框架支持从终端输入命令来进行一些操作,例如重启框架、停止框架、执行函数等。

注意

在 Docker、systemd、daemon 状态下启动的框架会自动关闭终端等待输入,交互不可用。

# reload

重新加载除 src/Framework/ 下的所有模块。

  • 别名:r

# stop

停止框架。

# logtest

输出各种等级的 log 示例文本。

# call

执行对应类的成员方法。下面是例子:

call \ZM\Utils\ZMUtil reload
1

# bc

直接执行 PHP 代码,输入格式为 base64。

bc XEZyYW1ld29ya1xDb25zb2xlOjp3YXJuaW5nKCJoZWxsbyB3YXJuaW5nISIpOw==
# 代码内容:\ZM\Console\Console::warning("hello warning!");
# 终端输出:[19:14:32] [W] hello warning!
1
2
3

# echo

输出文本

echo hello
1

# color

按照颜色输出文本

color green 我是绿色的字
1

# MOTD

在 1.4 版本开始,框架支持启动时的 motd 内容修改。

文件位置:config/motd.txt

其中,默认的 Zhamao 字样的 MOTD 是使用 figlet 命令生成的,figlet "Zhamao",你也可以针对自己的机器人名称或品牌进行生成。

# 设置输出主题

Console 组件支持为多种不同的终端设置不同的主题,比如有些人喜欢使用白色的终端,但是白色终端下 info 的颜色很浅,看不到,还有人使用不能显示颜色的黑白终端.....

vendor/bin/start server --log-theme={主题名}
1

现有支持的主题有:defaultwhite-termno-color

vendor/bin/start server --log-theme=white-term # 如果用的是白色终端,这个主题更友好
vendor/bin/start server --log-theme=no-color   # 如果不想让 log 带有任何颜色,使用无色主题
1
2