通常ログとは別ファイルにログを出力する
はじめに
Laravelはデフォルトでログ出力機能が実装されていて、
HogeController.php
use Log;
public function index()
{
Log::debug('これはデバッグ行');
}
このように記述するだけでログとして出力されます。
laravel-2020-07-21.log
[2020-07-21 00:00:00] local.DEBUG: これはデバッグ行
ログ出力を個別で設定してみる
設定ファイルはsrc/config/logging.phpになります
logging.php
'channels' => [
'stack' => [
'driver' => 'stack',
'channels' => [
'daily',
'hogelogs' //ここを今回は追加
],
'ignore_exceptions' => false,
],
...
...
...
// 指定するログチャンネル設定を記述
'hogelogs' => [
'driver' => 'daily',
'path' => storage_path('logs/hogelogs.log'),
'level' => 'error',
'days' => 14,
],
初級編なので(自分が初級ですからね:-)
もっと複雑な設定も出来るでしょう。
とりあえず通常ログファイルに全部出たらエラーデバッグがやりづらい!
エラーを追うのが面倒!!!
という事で設定してみました。
実際に出力してみよう
HogeController.php
use Log;
public function index()
{
Log::debug('これはデバッグ行');
Log::channel('hogelogs')->error('これはhogelogsに出力されます');
}
hogelogs-2020-07-21.log
[2020-07-21 00:00:00] local.ERROR: これはhogelogsに出力されます
簡単に出し分けられるのでsqlだけやAPI、batchで出力先を変えたいなど
遭遇する場面は多いと思います。
終わりに
今回は簡単な手法での紹介になりましたが、
設定する値で変わる(どう変わるかはまだ知らない)
ので、これからも勉強ですね
皆さんも色々とログ周り触ってみて、環境にあったログ設計を試してみてください。
#参考
https://qiita.com/K-Shuuun/items/37b7cc9a95030fe79494
https://qiita.com/hrdaya/items/b01d5621937a0710ca64