プログラム関係の備忘録。技術系記事1000記事以上を目指すブログ

【Laravel5.6】Log出力と便利な監視方法

  • 2018年5月19日
  • 2018年5月22日
  • PHP
  • 891view
  • 0件
PHP

今回すること

laravel5.5までと仕様が変わっているようなので、5.6の環境でLogファイルを出力するまでの手順をざっくり記載。
また、出力されるLogを監視するときのlessコマンドの使い方。

Laravel5.6でのLog出力

出力の設定

config/logging.phpの以下箇所でログ出力の設定ができる。

[php] ‘default’ => env(‘LOG_CHANNEL’, ‘stack’),
[/php]

デフォルトではLog Channelsにstackを指定していて、stackで再びChannelsを指定している。
例えばLog Channelsをdailyに変更するときは以下のような例となる。
[php] ‘default’ => env(‘LOG_CHANNEL’, ‘stack’),

‘channels’ => [
‘stack’ => [
‘driver’ => ‘stack’,
‘channels’ => [‘daily’],
],
[/php] 各Channelsではログファイルの出力パスの設定や、ログレベルの設定、出力する期間などをChannelsごとに分けておくことができる。

出力の記述

Logを出力したいファイルのnamespaceにuse Log;を追加
Log::(レベル)(内容);の形式で記述する。
[php] namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Log;

class HomeController extends Controller
{
public function index(Request $request)
{
$message = ‘Logメッセージテスト’;
Log::debug($message);
  }
}
[/php]

出力の確認

storage/logs内にLogファイルが出力される。
configファイルを変更したあとはキャッシュをクリアしておく。
[shell] php artisan config:clear
[/shell]

Logファイルの監視方法

出力されるLogを常時監視しておきたい場合は、端末(ubuntu)でLogファイルがあるディレクトリまで移動し、lessコマンドでファイルを閲覧する。
[shell] less (ファイル名)
[/shell]

その後shift+Fで監視状態に切り替えることで、指定のログファイルが更新されると随時そのログを閲覧することができる。
終了したいときはctrl+cで。