Logicky Blog

Logickyの開発ブログです

laravel/pailとかlog-viewerとかを使ってみる

ここに書いてあったのですが、pailはCLIでログを良い感じにチェックできるツールのようです。使ってみたいと思います。

インストール

下記のようにやりましたが、エラーが出ました。ext-pcntlが必要だそうです。ローカル環境はLaravel HerdでインストールされたPHP8.3を使っていますが、入っていないようです。

> composer require laravel/pail
Cannot use laravel/pail's latest version v1.1.3 as it requires ext-pcntl * which is missing from your platform.

In PackageDiscoveryTrait.php line 318:
                                                                                                                  
  Package laravel/pail has requirements incompatible with your PHP version, PHP extensions and Composer version:  
    - laravel/pail v1.1.3 requires ext-pcntl * but it is not present.  

あれ、windowsで使えないやつらしい。Laravel HerdはDockerコンテナとか使っていないはずなので、Windowsなので、使えないということか。

これをやってみようかな。。

stackoverflow.com

composer.jsonにext-pcntlを追加する

下記のようにconfig.platformext-pcntlを追加します。

    "config": {
        "platform": {
            "ext-pcntl": "8.0"
        }
    },

そして、改めてcomposer requireします。

> composer require laravel/pail

おー成功しました。実際はないのに成功しました。

pailを実行してみる

> php artisan pail

   RuntimeException 

  The [pcntl] extension is required to run Pail.

  at vendor\laravel\pail\src\Guards\EnsurePcntlIsAvailable.php:15
     11▕      */
     12▕     public static function check(): void
     13▕     {
     14▕         if (! function_exists('pcntl_fork')) {
  ➜  15▕             throw new RuntimeException('The [pcntl] extension is required to run Pail.');
     16▕         }
     17▕     }
     18▕ }
     19▕

  1   vendor\laravel\pail\src\Console\Commands\PailCommand.php:45
      Laravel\Pail\Guards\EnsurePcntlIsAvailable::check()

  2   vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:36
      Laravel\Pail\Console\Commands\PailCommand::handle(Object(Laravel\Pail\ProcessFactory))

pcntlがないよエラーでました。。まあ実際ないですからね。。 やはりダメなようです。うーむということは、WindowsだとDockerとか使わない限り使えなそうだなと思いました。 私は今Laravel Herdに100ドル課金しておりまして、一旦Herdしばりをしていますので、別のログツールを使ってみたいと思います。

log-viewerよさそう

github.com

composer require opcodesio/log-viewer
php artisan log-viewer:publish

おー。もうこれでいいじゃん。素晴らしい。 これ本番環境とかで公開されないのかな。。。一応調べよう。

デフォルトでは、Log Viewer は本番環境では承認されません ( がAPP_ENVに設定されている場合production)。これにより、本番環境でログが誤って漏洩するのを防ぎます。

と書いてあるので、大丈夫そう。

Laravel HerdのLog Viewerは使わないのか?

確かに、これを使いたいところです。下記をクリックするだけで表示されるので便利ですね。

まあ、log-viewerの方が見やすそうではありますが、すぐ開ける利便性は重要だと思います。

しかしながら、、このLog Viewer、現行のバージョンですと、なんと、ドラッグによる移動が出来ません!!ディスプレイの中央に表示され、全く動かすことができないのです。 100ドルのHerdには、どうも不便で不完全な部分も結構あるようです。しかしながら、まあ単純なバグなので、すぐ直るのではないでしょうか? それまでは、Herdじゃない方のlog-viewerを使っていきたいと思います。