env('LOG_CHANNEL', 'stack'), 'deprecations' => [ 'channel' => env('LOG_DEPRECATIONS_CHANNEL', 'null'), 'trace' => env('LOG_DEPRECATIONS_TRACE', false), ], 'channels' => [ 'stack' => [ 'driver' => 'stack', 'channels' => explode(',', env('LOG_STACK', 'single')), 'ignore_exceptions' => false, ], 'single' => [ 'driver' => 'single', 'path' => storage_path('logs/laravel.log'), 'level' => env('LOG_LEVEL', 'debug'), 'replace_placeholders' => true, ], 'daily' => [ 'driver' => 'daily', 'path' => storage_path('logs/laravel.log'), 'level' => env('LOG_LEVEL', 'debug'), 'days' => env('LOG_DAILY_DAYS', 14), 'replace_placeholders' => true, ], // Separate channel for financial transaction logs (longer retention) 'transactions' => [ 'driver' => 'daily', 'path' => storage_path('logs/transactions.log'), 'level' => 'info', 'days' => 90, 'replace_placeholders' => true, ], // Security events (login, failed login, fraud alerts) — long retention 'security' => [ 'driver' => 'daily', 'path' => storage_path('logs/security.log'), 'level' => 'info', 'days' => 180, 'replace_placeholders' => true, ], 'stderr' => [ 'driver' => 'monolog', 'level' => env('LOG_LEVEL', 'info'), 'handler' => Monolog\Handler\StreamHandler::class, 'formatter' => env('LOG_STDERR_FORMATTER'), 'with' => [ 'stream' => 'php://stderr', ], 'processors' => [ \App\Logging\MaskSensitiveProcessor::class, ], ], 'syslog' => [ 'driver' => 'syslog', 'level' => env('LOG_LEVEL', 'debug'), ], 'errorlog' => [ 'driver' => 'errorlog', 'level' => env('LOG_LEVEL', 'debug'), ], 'null' => [ 'driver' => 'monolog', 'handler' => Monolog\Handler\NullHandler::class, ], 'emergency' => [ 'path' => storage_path('logs/laravel.log'), ], ], ];