ubuntu

thinkphp在ubuntu上的日志管理技巧

小樊
43
2025-09-04 21:29:22
栏目: 编程语言

以下是ThinkPHP在Ubuntu上的日志管理技巧:

一、基础配置

  1. 配置文件
    修改config/log.php,设置日志存储路径(默认runtime/log)、级别(如['error', 'warning'])、驱动类型(file/database等)。

    return [
        'default' => 'file',
        'channels' => [
            'file' => [
                'type' => 'file',
                'path' => runtime_path('log'),
                'level' => ['error', 'info'],
                'max_files' => 30, // 保留30天日志
            ],
        ],
    ];
    
  2. 日志级别
    支持debuginfoerror等,通过Log::level动态调整或配置文件设置。

    Log::info('普通信息', ['user_id' => 1]); // 记录带上下文的信息
    

二、日志查看与分析

  1. 命令行工具

    • 使用php think log查看所有日志。
    • 结合grep/awk筛选关键信息,如grep "error" runtime/log/*.log
  2. 实时监控
    tail -f runtime/log/当前日期.log查看实时日志。

三、日志清理与归档

  1. 手动清理
    删除runtime/log目录下过期日志文件。

  2. 自动清理

    • 配置max_files限制日志文件数量(如30天),系统自动删除旧文件。
    • 使用Ubuntu定时任务(cron)定期清理,例如每天凌晨清理7天前日志:
      # 编辑定时任务
      crontab -e
      # 添加以下内容(每天0点执行)
      0 0 * * * find /项目路径/runtime/log -type f -mtime +7 -name "*.log" -exec rm -f {} \;
      

四、高级管理技巧

  1. 多通道日志
    配置不同通道(如文件、数据库、邮件),重要错误同时输出到多个目标。

    // 配置邮件报警通道
    'channels' => [
        'email_alert' => [
            'type' => 'email',
            'receivers' => ['admin@example.com'],
            'level' => ['emergency'],
        ],
    ];
    
  2. 集成专业工具

    • 使用Monolog扩展自定义日志格式或输出到远程服务器。
    • 结合ELK Stack(Elasticsearch+Logstash+Kibana)实现日志的集中化、可视化分析。
  3. 权限与安全

    • 确保runtime/log目录权限为755,避免敏感信息泄露。
    • 避免在日志中记录密码等敏感数据。

0
看了该问题的人还看了