A Laravel(ログ エラーハンドリング) - user000422/0 GitHub Wiki

ログ(logs/laravel.log)

標準の設定ではstorage/log/laravel.logに出力される。 デフォルトではローテーションされない。

ログ(カスタム)

設定ファイル config/logging.php

Controller

// 単純なログ出力の場合
\Log::info('Authorization code:', ['code' => $request->code]);
\Log::debug('message', ['name' => $name]);

■ログカスタム config/logging.php

'channels' => [
    'stack' => [
        // 割愛
    ],
    // 追加
    'sample' => [
        'driver' => 'custom',
        'via' => App\Logging\CreateCustom1Logger::class,
        'path' => storage_path('logs/sample.log'),
        'level' => 'debug', 
        'days' => 14,   
    ],

app/Logging/SampleLogger.php を作成

public function __invoke(array $config)
{
    //
}

Laravel8からは

エラーハンドリング

■例外処理が必要なパターン 「DB連携」「API連携」「認証」「バリデーション」「ファイルアップロード」「システムクリティカルエラー」

.env

# エラー内容をブラウザに出力
# 本番環境では「false」にすること
APP_DEBUG=true

■Try 【要確認】「Throwable」はPHP7から登場。すべてのエラーを補足。

try {
    // 処理

    // エラーを発生させる
    throw new \Exception("エラーだよ");
} catch (Throwable $e) {
    // エラー
    \Log::error($e); // エラー内容すべて出力
    \Log::error($e->getMessage()); // 簡単なエラーメッセージのみ出力
}