在 Linux + Laravel 环境下,日志是开发、调试和排查问题非常重要的部分。下面从 日志位置、配置方式、常用用法、查看方式 几方面说明。
Laravel 默认日志在:
storage/logs/laravel.log
如果用了 按频道/日期拆分,可能在:
storage/logs/laravel-2026-01-21.log
Laravel 使用 Monolog,常用配置在:
config/logging.php
single:单文件(默认)daily:每天一个日志文件(推荐生产)stack:组合多个 channelstderr:输出到标准错误(适合 Docker)示例(daily):
'default' => env('LOG_CHANNEL', 'daily'),
'channels' => [
'daily' => [
'driver' => 'daily',
'path' => storage_path('logs/laravel.log'),
'level' => 'debug',
'days' => 14,
],
],
use Illuminate\Support\Facades\Log;
Log::debug('调试信息');
Log::info('普通信息');
Log::warning('警告');
Log::error('错误');
Log::critical('严重错误');
Log::error('用户登录失败', [
'user_id' => 1,
'ip' => request()->ip(),
]);
Log::channel('daily')->info('使用 daily 日志');
tail -f storage/logs/laravel.log
tail -n 100 storage/logs/laravel.log
grep "error" storage/logs/laravel.log
tail -f storage/logs/laravel.log | grep error
✅ 使用 daily
✅ 设置日志级别(生产一般 error 或 warning)
✅ 定期清理日志(或设置 days)
✅ 权限正确:
chown -R www-data:www-data storage
chmod -R 755 storage
Laravel 异常会自动写入日志(默认 error 级别),你也可以自定义:
// app/Exceptions/Handler.php
public function report(Throwable $e)
{
Log::error('自定义异常', [
'msg' => $e->getMessage(),
]);
parent::report($e);
}
如果你愿意,可以告诉我:
我可以直接给你一套完整配置。