勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

Laravel 13系でエラーログをブラウザ上で表示・検索できる「log-viewer」の導入方法

  PHP Laravel

先日Laravel 13系でエラーログ設定を行ったが、このログをブラウザ上で表示・検索できるようにしたい。「log-viewer」というパッケージを導入することで希望の挙動になった。以下に導入方法をメモ。

 

log-viewer

公式サイト

https://log-viewer.opcodes.io/

Github

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

 

対応方法

log-viewerのインストール

サーバにSSH接続して以下でインストールする。

# log-viewerのインストール
podman exec \
    -w 【Laravelをインストールしたディレクトリ】 \
    【コンテナ名】 \
    composer require opcodesio/log-viewer

設定ファイルの作成

短縮コマンドは過去記事を参照。

# 通常の場合
podman exec -w 【Laravelディレクトリ】 【コンテナ名】 php artisan log-viewer:publish --provider="Opcodes\LogViewer\LogViewerServiceProvider"

# 短縮コマンドの場合
pa log-viewer:publish --provider="Opcodes\LogViewer\LogViewerServiceProvider"

この時点でブラウザから「/laravel/log-viewer」にアクセスすると以下のように表示される筈。

(必要に応じて)アクセスIP制限

サーバ側(Nginx)でアクセスIP制限をかけたい場合は過去記事参照。

Laravelで対応する場合は「/app/Providers/AppServiceProvider.php」の以下を追記もしくは変更する。

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

# ユーザーのアクション権限(認可)用を追加
use Illuminate\Support\Facades\Gate;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     */
    public function register(): void
    {
        //
    }

    /**
     * Bootstrap any application services.
     */
    public function boot(): void
    {
        # log-viewer用のゲートを定義を追加
        Gate::define('viewLogViewer', function ($user = null) {
            $allowedIps = [
                '127.0.0.1',       // ローカル環境
                'xxx.xxx.xxx.xxx', // 自身のIPを追加
            ];

            return in_array(request()->ip(), $allowedIps);
        });
    }
}

 - PHP Laravel

  関連記事

Laravel 13系でMailpitに対してテキスト・HTMLメールを送信する方法
Laravel 13系でMailpitに対してテキスト・HTMLメールを送信する方法

Laravel 13系でMailpitに対してテキスト・HTMLメールを送信した ...

Laravel 13系でエラーログ設定と出力及び確認方法
Laravel 13系でエラーログ設定と出力及び確認方法

Laravelのエラーログはデフォルト設定だと同じファイルに無制限に追記していく ...

Podmanコンテナ環境のLaravelのキャッシュクリア方法
Podmanコンテナ環境のLaravelのキャッシュクリア方法

Laravelで何らかのファイルを編集し、アップロードしてもうまく動かない場合が ...

Podmanコンテナ環境にLaravel 13系をインストールしHello Worldページ表示まで行う方法
Podmanコンテナ環境にLaravel 13系をインストールしHello Worldページ表示まで行う方法

先日Podmanコンテナ環境(PHP 8.4.25)にCodeIgniterをイ ...

Laravelのディレクトリ構造・バージョン・DB接続情報確認
Laravelのディレクトリ構造・バージョン・DB接続情報確認

Laravelで作成されているシステムに携わることがあった。しかしながら当方La ...