DEV

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

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

インストール

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

Terminal window
> 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なので、使えないということか。

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

https://stackoverflow.com/questions/48577465/how-can-i-solve-laravel-horizon-v1-1-0-requires-ext-pcntl-the-requested-phstackoverflow.com

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

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

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

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

Terminal window
> composer require laravel/pail

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

pailを実行してみる

Terminal window
> 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よさそう

https://github.com/opcodesio/log-viewergithub.com

Terminal window
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を使っていきたいと思います。