控制台 ANSI 编码的颜色不解析,以及控制台开头的提示怎么修改(INFO WARN)

  • 我使用php artisan server 启动控制台,想在控制台输出sql语句

     protected $listen = [
         ......
          QueryExecuted::class => [
              QueryListener::class,
          ],
      ];

    QueryListener 文件

     public function handle(QueryExecuted $event)
      {
          if (Config('database.print_sql')) {
              $s = str_replace('?', '%s', $event->sql);
              $bindings = array_map(function ($binding) {
                  if (is_string($binding) || is_object($binding)) {
                      return "\"{$binding}\"";
                  }
                  return $binding;
              }, $event->bindings);
              $sql = $this->addColor(sprintf($s, ...$bindings), "\033[32m");
              $nowTime = $this->addColor('[' . date("Y-m-d Hs", time()) . ']', "\033[36m");
              $connectionName = $this->addColor($event->connectionName, "\033[34m");
              $time = $this->addColor("[time:$event->time" . "ms]", "\033[33m");
              $str = $nowTime . $connectionName . $time . $sql . PHP_EOL;
              //echo $str
              //[36m[2023-10-20 09:54:22] [0m[34mmysql [0m[33m[time:1.24ms] [0m[32mselect * from`role` //where `id` = "1" limit 1[0m
              $handle = fopen("php://stdout", "w");
              fwrite($handle, $str);
              fclose($handle);
          }
      }
    
      public function addColor($str, $color): string
    {
      $length = strlen($str);
      $str = str_pad($str, $length + 2, " ");
      return $color . $str . "\033[0m";
    }

    但是在laravel10 版本中 ANSI 编码的颜色不解析,但是在8. 版本中是可以的
    下面是在10控制台的显示,不知道为什么,颜色不解析,并且不知道这个WARN 怎么改变这个提示

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!