首页主机资讯Laravel项目在Linux上如何进行日志管理

Laravel项目在Linux上如何进行日志管理

时间2025-12-05 00:03:03发布访客分类主机资讯浏览1070
导读:Laravel 在 Linux 上的日志管理实践 一 基础配置与日志级别 日志默认目录为项目的 storage/logs,常见文件有 laravel.log 等。可在 .env 中设置通道与级别: 通道:LOG_CHANNEL=sing...

Laravel 在 Linux 上的日志管理实践

一 基础配置与日志级别

  • 日志默认目录为项目的 storage/logs,常见文件有 laravel.log 等。可在 .env 中设置通道与级别:
    • 通道:LOG_CHANNEL=single|daily|stack|syslog|errorlog
    • 级别:LOG_LEVEL=debug|info|notice|warning|error|critical|alert|emergency
  • 也可在代码中通过门面记录:
    • \Log::info(‘上线完成’, [‘env’ => app()-> environment()]);
    • \Log::error(‘支付失败’, [‘order_id’ => $id, ‘reason’ => $e-> getMessage()]);
  • 级别从低到高依次为:debug < info < notice < warning < error < critical < alert < emergency,设置某一级后仅记录该级及以上。

二 按日期轮转与保留策略

  • 方案 A Laravel 内置 daily 通道(应用内轮转)
    • 配置示例(Laravel 5.6+ 推荐在 config/logging.php 的 channels 中使用 daily):
      • ‘daily’ => [ ‘driver’ => ‘daily’, ‘path’ => storage_path(‘logs/laravel.log’), ‘level’ => env(‘LOG_LEVEL’, ‘debug’), ‘days’ => 14, ],
    • 旧版本可在 config/app.php 使用:
      • ‘log’ => ‘daily’, ‘log_max_files’ => 30,
    • 说明:内置 daily 会在达到保留天数后自动清理,适合无需系统级工具的单体应用。
  • 方案 B 系统级 logrotate(推荐与内置策略二选一或叠加)
    • 新建配置 /etc/logrotate.d/laravel
      • /path/to/your/laravel/storage/logs/*.log {
        • daily
        • missingok
        • rotate 14
        • compress
        • notifempty
        • create 0640 www-data adm
        • }
    • 按需调整保留天数、压缩与权限;Debian/Ubuntu 上 logrotate 通常已预装,可手动触发测试:sudo logrotate -f /etc/logrotate.conf。

三 权限与目录准备

  • 确保运行用户(如 www-datanginx)对日志目录具备写权限:
    • sudo mkdir -p /var/www/your_project/storage/logs
    • sudo chown -R www-data:www-data /var/www/your_project/storage/logs
    • sudo chmod -R 755 /var/www/your_project/storage/logs
  • 若使用外部日志目录,需在 config/logging.php 中同步修改 path

四 日常查看与清理

  • 实时查看与检索:
    • 实时尾随:tail -f storage/logs/laravel.log
    • 最新 N 行:tail -n 50 storage/logs/laravel.log
    • 关键字过滤:grep -i “error” storage/logs/laravel.log | tail -n 20
  • 清理策略(不建议手工 rm,优先用轮转/保留策略)
    • 若需临时清理:find /path/to/your/laravel/storage/logs -type f -name “*.log” -mtime +14 -delete
    • 更稳妥做法:通过 logrotate 的 rotatecompress 自动管理。

五 远程集中与告警

  • 远程日志:
    • 使用 syslog 通道将日志发往系统日志,再由 rsyslog/Logstash 集中;或在 stack 通道中组合多个通道(如 daily + syslog)。
  • 第三方服务:
    • 结合 Monolog 对接 Papertrail/Loggly 等,获得检索、可视化与告警能力,适合多实例与分布式部署。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Laravel项目在Linux上如何进行日志管理
本文地址: https://pptw.com/jishu/764115.html
Linux服务器上Laravel如何监控性能 Laravel项目在Linux上如何备份

游客 回复需填写必要信息