[Laravel8.x] debugログの見方とerrorログの設定

$ less storage/logs/laravel.log

ログに書き込まれるレベル
emergency, alert, critical, error, warning, notice, info, debug

[2020-12-25 11:25:08] laravel.EMERGENCY: Unable to create configured logger. Using emergency logger. {“exception”:”[object] (InvalidArgumentException(code: 0): Log [] is not defined. at /home/vagrant/dev/testApp/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:192)

[2020-12-26 11:55:12] local.ERROR: syntax error, unexpected ‘Route’ (T_STRING), expecting ‘)’ {“exception”:”[object] (ParseError(code: 0): syntax error, unexpected ‘Route’ (T_STRING), expecting ‘)’ at /home/vagrant/dev/testApp/routes/web.php:73)

ログの出力はconfigs/logging.phpに書かれている

'channels' => [
        'stack' => [
            'driver' => 'stack',
            'channels' => ['single'],
            'ignore_exceptions' => false,
        ],

        'single' => [
            'driver' => 'single',
            'path' => storage_path('logs/laravel.log'),
            'level' => env('LOG_LEVEL', 'debug'),
        ],

-> stackのsingleつまり、’LOG_LEVEL’, ‘debug’がlogs/laravel.logに出力されている
-> ログレベル:デバッグ(詳細なデバッグ情報を出力)

エラーのみを出力するファイルを作成する

 'stack' => [
            'driver' => 'stack',
            'channels' => ['single','errors'],
            'ignore_exceptions' => false,
        ],

        'single' => [
            'driver' => 'single',
            'path' => storage_path('logs/laravel.log'),
            'level' => env('LOG_LEVEL', 'debug'),
        ],
        'errors' => [
            'driver' => 'daily',  // 日付ごとにファイルを出力
            'path' => storage_path('logs/errors.log'), // errors-YYYY-MM-DD.log
            'level' => 'error',
            'days' => 28, // ログを保有する日数:28日
        ],

どういう運用をしたいかによると思うが、errorログは最低限出力しておきたい。

[Laravel8.16.0] 秘密鍵・private_keyの管理方法

private_keyを使ってControllerで処理をするとして、Controllerの中にprivate_keyを使うのは宜しくない。
ということで、.envに保存する。

.env

PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\nhogehogefugafuga\n"

controllerからenvファイルを呼び込むのは宜しくないらしいので、configを経由する。

config/app.php

'private_key' => env('PRIVATE_KEY'),

controller

$value = config('app.private_key');
dd($value);

ほう、なるほど。
とりあえずrepository作り直す。