見出し画像

【Laravel】Log Viewerでログファイルを可視化して運用を効率化

Laravelを本番環境で運用している際、ログファイルを確認する作業(特定のログの検索や、そもそもログファイルを見に行くという行為自体)を効率化できないかと思いまして色々と探してみたら、なかなか良さげなパッケージがあったので試してみました。

Log Viewerについて

storage/logs配下のログファイルをブラウザ上に可視化するパッケージです。
公式:https://log-viewer.opcodes.io/

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

You will no longer need to read the raw Laravel log files trying to find what you're looking for.
Log Viewer helps you quickly and clearly see individual log entries, to search, filter, and make sense of your Laravel logs fast. It is free and easy to install.

(READMEから引用)

開発者はこちらの方です。

紹介動画もありました↓

😎特徴

・キーワードや正規表現で検索できる
・ログレベルでフィルタリングできる
・個別のログに共有用のリンク
・ダークモード切り替え
などなど

🚀試してみる

要件

PHP 8.0+
Laravel 8+
※ composerのバージョンが1系だとエラーになるようです。

インストール

composer require opcodesio/log-viewer

確認
/log-viewerにアクセスするとログの一覧が表示されるはずです。

ログの一覧を確認する画面

各ログの右端の数字をクリックすると、共有リンクをコピーできます。

画面左側にはstorage/logs配下のログファイルが一覧表示されています。
ファイル名横のメニューアイコンをクリックすると、ダウンロードや削除が行えることが確認できます。

ログファイルを操作するメニューを表示

ログレベルをWARNINGとERRORだけに絞ってみるとこんな感じです。
(画像黄色枠の部分でフィルタリングしています)

ログレベルをフィルタリング

設定
デフォルトの状態でも充分ですが、追加で設定を行いたい場合はこちらのコマンドでconfig/log-viewer.phpを作成します。

php artisan vendor:publish --tag="log-viewer-config"

route_pathでログ閲覧のパスを変更したり、exclude_filesで除外するファイルを設定したりできるようです。

特定の環境だけLog Viewerをオフにしたい場合は、.envファイルにLOG_VIEWER_ENABLED=falseを設定すれば実現できます。

その他、実際に本番環境等で運用するためにアクセス制限を行う方法は、公式ドキュメントのこちらで紹介されています。
https://log-viewer.opcodes.io/docs/configuration/access-to-log-viewer

まとめ

UIはシンプルで見やすく、操作感も良かったです。
個人的に特定のログをリンクでシェアできるのは結構便利なのではないかと感じました。
ログページへのアクセス制限の実装は必要になりますが、気軽に導入できて運用の効率化を実現できるパッケージだと思います。

プラスジャム製作開発部メンバーがWeb制作技術を紹介。
案件で実装した機能や自己学習で得た知識を発信していきます。
[今回の記事担当]バックエンドエンジニア k.m