ridge/laravel-custom-log is a Laravel package for extend laravel logger..
It currently has 0 GitHub stars and 22 downloads on Packagist (latest version 1.0.1).
Install it with composer require ridge/laravel-custom-log.
Discover more Laravel packages by ridge
or browse all Laravel packages to compare alternatives.
Last updated
##下準備 設定ファイル反映
php artisan vendor:publish --tag=custom-log
php artisan config:cache
##機能 ###・ロギング設定拡張
概要
laravel標準の「設定ファイルによるロギング設定」に比べ、より詳細な「MonoLogのモジュール単位での設定」を実現すると共に,開発の際頻繁に要求されるログの実装をサポートします。
実装手順
ログチャンネルドライバ作成
php artisan make:logDriver {ドライバクラス名} --type={ドライバタイプ}
補足
利用可能ドライバタイプ・ day : ログファイルを日付ごとに分けて出力/管理します。
・ single : ログファイルを単一ファイルで出力/管理します。
・ csv : ログファイルをcsv形式で出力/管理します。
フォーマット等ドライバ処理実装(ドライバphpdoc参照)
ログチャンネル設定追加
設定ファイル config/logging.php
channelsに下記を追記
{ログチャンネルキー} => [
'driver' => 'custom',
'via' => {ドライバクラス名},
'path' => {ログファイル保存先パス},
'level' => {出力対象最低ログレベル},
'days' => {最大ログファイル数}
],
補足
ドライバクラス名(必須):手順1で作成したドライバのクラス名(例 TestDriver::class)
ログファイル保存先パス:ログファイルの保存先パス指定
出力対象最低ログレベル:ロギングを行うログレベルの絞り込み
最大ログファイル数:日付ごとのログファイルを何日分保持するか
設定反映 php artisan config:cache
ロギング処理実装
ログの書き込みにはCustomLog/Facades/Logを使用してください。
実際に書き込みを行うメソッドに関しては、laravelのLogファサードと同じく、ログレベルがメソッド名と対応している形になります。
チャンネルの指定にはchannel()またはpinChannel()が利用できます。
channel():指定チャンネルのロガーを返します。チャンネルの指定からロギングまでメソッドチェーンで行うことが出来ます。
pinChannel():ログチャンネルのピン止めを行うことができます。ピン止めを行うと、チャンネルの指定をせずにファサードから直接ロギングを行った場合のチャンネルを固定することができます。
###・リクエスト/レスポンス ロギング
概要
httpリクエスト、httpレスポンスの内容をログに書き込みます。
実装手順
ミドルウェア設定追加
設定ファイル app/Http/Kernel.php
$routeMiddlewaresに下記を追記
'httpLog' => \CustomLog\Middleware\LogHttpTransaction::class
ミドルウェア反映
リクエスト/レスポンスのロギングを行いたい対象にミドルウェアを反映してください。
下記のようにミドルウェア指定の際にログチャンネルを指定することが出来ます。
(ログチャンネルの指定を行わなかった場合は、デフォルトチャンネルが使用されます)
httpLog:{ログチャンネルキー}
当ミドルウェアはチャンネルのピン止めも兼ねています。
ミドルウェアが反映されている処理内では、チャンネルが指定チャンネルにピン止めされます。
###・DBクエリログ
概要
dbアクセス時の様々なクエリをログ出力します
実装手順
ミドルウェア設定追加
設定ファイル app/Http/Kernel.php
$routeMiddlewaresに下記を追記
'queryLog' => \CustomLog\Middleware\LogDBQuery::class
ミドルウェア反映
dbのクエリロギングを行いたい対象にミドルウェアを反映してください。
ロギング詳細設定
設定ファイルよりログ内容の調整が可能です。
config/customlog.php
各項目詳細
db.channel:ロギングの際に使用するログチャンネルキー
db.target:ロギング対象クエリ種別指定(true:対象 false:対象外)
db.explain:ロギングを行う際に実行計画(explain)も同時に実行しログに残すか
db.transaction:transactionに関するクエリのロギングを行うか