# 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 等级: ```bash 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 等级 启动框架 ``` ## 使用 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。 !!! warning 注意 框架内出现的用户态异常,比如无法发送 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**: 要变的颜色。支持 `red`,`green`,`yellow`,`reset`,`blue`,`gray`,`gold`,`pink`,`lightblue`,`lightlightblue` ```php 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"); ``` ## 终端交互命令 炸毛框架支持从终端输入命令来进行一些操作,例如重启框架、停止框架、执行函数等。 ::: warning 注意 在 Docker、systemd、daemon 状态下启动的框架会自动关闭终端等待输入,交互不可用。 ::: ### reload 重新加载除 `src/Framework/` 下的所有模块。 - 别名:`r` ### stop 停止框架。 ### logtest 输出各种等级的 log 示例文本。 ### call 执行对应类的成员方法。下面是例子: ```bash call \ZM\Utils\ZMUtil reload ``` ### bc 直接执行 PHP 代码,输入格式为 base64。 ```bash bc XEZyYW1ld29ya1xDb25zb2xlOjp3YXJuaW5nKCJoZWxsbyB3YXJuaW5nISIpOw== # 代码内容:\ZM\Console\Console::warning("hello warning!"); # 终端输出:[19:14:32] [W] hello warning! ``` ### echo 输出文本 ```bash echo hello ``` ### color 按照颜色输出文本 ```bash color green 我是绿色的字 ``` ## MOTD 在 1.4 版本开始,框架支持启动时的 motd 内容修改。 文件位置:`config/motd.txt` ## 设置输出主题 Console 组件支持为多种不同的终端设置不同的主题,比如有些人喜欢使用白色的终端,但是白色终端下 info 的颜色很浅,看不到,还有人使用不能显示颜色的黑白终端..... ```bash vendor/bin/start server --log-theme={主题名} ``` 现有支持的主题有:`default`,`white-term`,`no-color` ```bash vendor/bin/start server --log-theme=white-term # 如果用的是白色终端,这个主题更友好 vendor/bin/start server --log-theme=no-color # 如果不想让 log 带有任何颜色,使用无色主题 ```