Ubuntu下查看 Laravel 日志的实用指南
一 日志位置与默认通道
- Laravel 日志默认位于项目根目录的 storage/logs,常见文件为 laravel.log;使用 daily 通道时会按日期生成文件,如 laravel-YYYY-MM-DD.log。这些文件由 Monolog 驱动写入,便于按天归档与检索。
二 常用查看命令
- 进入项目根目录(示例):cd /var/www/your-laravel-project
- 查看日志目录:ls -l storage/logs
- 实时查看最新日志:tail -f storage/logs/laravel.log
- 查看最后 N 行:tail -n 100 storage/logs/laravel.log
- 分页查看(支持搜索):less storage/logs/laravel.log
- 按关键字过滤(如 error):grep -i ‘error’ storage/logs/laravel.log
- 按日期过滤(示例:2025-12-28):grep -E ‘$$2025-12-28$$’ storage/logs/laravel.log
以上命令适用于 Ubuntu/Linux 环境,能快速定位异常与请求信息。
三 调整日志级别与通道
- 在 .env 中设置日志级别(开发环境建议 debug,生产环境建议 error 或 warning):LOG_LEVEL=debug
- 在 config/logging.php 可选择通道与保留策略,例如使用 daily 通道并设置保留 30 天:
‘daily’ => [
‘driver’ => ‘daily’,
‘path’ => storage_path(‘logs/laravel.log’),
‘level’ => env(‘LOG_LEVEL’, ‘debug’),
‘days’ => 30,
],
- 需要临时清理日志可使用 Artisan:php artisan log:clear(谨慎使用,生产环境建议先备份)。
四 权限与轮转
- 权限问题处理(Web 服务用户通常为 www-data):
sudo chown -R www-data:www-data /var/www/your-laravel-project/storage/logs
sudo chmod -R 755 /var/www/your-laravel-project/storage/logs
- 使用 logrotate 做日志轮转(创建 /etc/logrotate.d/laravel):
/path/to/your/laravel/storage/logs/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0640 www-data adm
}
以上可避免日志无限增长并便于归档管理。
五 进阶 集中式日志
- 可将日志发送到系统 syslog 或集中式日志服务(如 Logstash、rsyslog)。例如使用 syslog 驱动写入系统日志,便于与服务器其它日志统一收集与分析。