温馨提示×

linux laravel怎么日志

小樊
34
2026-10-27 19:52:34
栏目: 智能运维

在 Linux + Laravel 环境下,日志是开发、调试和排查问题非常重要的部分。下面从 日志位置、配置方式、常用用法、查看方式 几方面说明。


一、Laravel 日志默认位置

Laravel 默认日志在:

storage/logs/laravel.log

如果用了 按频道/日期拆分,可能在:

storage/logs/laravel-2026-01-21.log

二、日志配置(config/logging.php)

Laravel 使用 Monolog,常用配置在:

config/logging.php

常见 channel

  • single:单文件(默认)
  • daily:每天一个日志文件(推荐生产)
  • stack:组合多个 channel
  • stderr:输出到标准错误(适合 Docker)

示例(daily):

'default' => env('LOG_CHANNEL', 'daily'),

'channels' => [
    'daily' => [
        'driver' => 'daily',
        'path' => storage_path('logs/laravel.log'),
        'level' => 'debug',
        'days' => 14,
    ],
],

三、在代码里写日志(最常用)

1️⃣ 使用 Log 门面

use Illuminate\Support\Facades\Log;

Log::debug('调试信息');
Log::info('普通信息');
Log::warning('警告');
Log::error('错误');
Log::critical('严重错误');

2️⃣ 带上下文数据

Log::error('用户登录失败', [
    'user_id' => 1,
    'ip' => request()->ip(),
]);

3️⃣ 指定 channel

Log::channel('daily')->info('使用 daily 日志');

四、在 Linux 下查看日志

实时查看(最常用)

tail -f storage/logs/laravel.log

查看最近 100 行

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);
}

如果你愿意,可以告诉我:

  • 你是 开发环境还是生产环境
  • 是否使用 Docker / Nginx / Supervisor
  • 想做 错误告警 / 日志分割 / 远程日志

我可以直接给你一套完整配置。

0 踩