阅读量:2
Ubuntu下Laravel日志管理实用技巧
一 基础定位与快速查看
- 日志默认位于项目的storage/logs目录,常见文件为laravel.log,按日期分割时会出现类似laravel-2025-11-15.log的文件。进入项目目录后可用
ls -la storage/logs查看。实时监控可用tail -f storage/logs/laravel.log,或同时跟踪多个文件tail -f file1.log file2.log;按关键字检索可用grep -n "ERROR" storage/logs/laravel.log。这些命令适合排查500错误、异常堆栈与业务告警。
二 日志级别与通道配置
- 在**.env中设置全局日志级别:
LOG_LEVEL=error(可选值:emergency、alert、critical、error、warning、notice、info、debug),生产环境建议设为error或warning**以减少日志量。 - 在config/logging.php中可配置通道与保留策略,例如使用daily通道并设置保留天数,或组合stack通道聚合多个通道:
'channels' => [
'daily' => [
'driver' => 'daily',
'path' => storage_path('logs/laravel.log'),
'level' => 'debug',
'days' => 14,
],
'stack' => [
'driver' => 'stack',
'channels' => ['single', 'daily'],
'ignore_exceptions' => false,
],
],
- 代码内使用Log门面记录结构化日志:
Log::info('用户登录', ['id' => $user->id]);、Log::error('DB连接失败', ['exception' => $e]);,便于检索与聚合分析。
三 日志轮转与自动清理
- 使用系统自带的logrotate做按日轮转与压缩,创建文件**/etc/logrotate.d/laravel**:
/path/to/your/laravel/storage/logs/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
}
说明:每天轮转、保留14天、压缩旧日志、空文件不轮转、按www-data:adm创建新文件(请按实际运行用户/组调整)。Ubuntu默认已安装logrotate。
- 作为补充,可用Cron定期清理超期日志(示例:每天1:00删除14天前的日志):
0 1 * * * find /path/to/your/laravel/storage/logs -type f -name "*.log" -mtime +14 -exec rm -f {} \;
- 也可在维护窗口使用Artisan命令快速清理:
php artisan log:clear(注意这会清空日志,务必谨慎并在合适时机执行)。
四 权限与运行用户
- 确保日志目录可写,避免因权限导致“Permission denied”。常见做法(按实际运行用户调整):
chmod -R 755 storage/logs
chown -R www-data:adm storage/logs
- 若使用fpm或队列/计划任务,请确认执行用户与目录属主一致,防止轮转或写入失败。
五 集中化与结构化实践
- 集中化与告警:将日志发送到远程服务便于搜索、可视化和告警,可在config/logging.php使用stack通道集成第三方处理器(如Papertrail、Loggly),或在系统层面通过rsyslog/Logstash收集。
- 结构化日志:在通道上启用JSON格式,便于ELK等系统解析与检索;也可按需自定义格式与处理器,提升可观测性与故障定位效率。
以上就是关于“Ubuntu下Laravel日志管理技巧有哪些”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm