ubuntu

thinkphp在ubuntu中的日志管理技巧

小樊
51
2025-08-27 21:17:37
栏目: 编程语言

一、基础配置

  1. 配置文件路径
    日志配置位于 config/log.php(需手动创建),可设置日志级别、存储路径、格式等,例如:

    return [
        'type' => 'file', // 日志类型(支持file/database/syslog等)
        'path' => runtime_path() . 'logs/', // 存储路径(默认runtime/log/)
        'level' => ['debug', 'info', 'error'], // 记录级别
        'max_files' => 30, // 保留日志文件数量
        'max_file_size' => 2097152, // 单个文件最大2MB(自动分割)
    ];
    
  2. 日志级别控制

    • 支持 debug(调试)、info(信息)、error(错误)等8级。
    • 生产环境建议仅保留 errorcritical 级别,减少日志量。

二、日志操作技巧

  1. 手动记录日志
    使用 Log 门面快速记录:

    use think\facade\Log;
    Log::info('用户登录成功', ['user_id' => 1]); // 普通信息
    Log::error('数据库连接失败', ['error' => $e->getMessage()]); // 错误信息
    
  2. 按通道拆分日志
    通过 channel 参数将不同模块日志存入独立文件,如:

    Log::channel('order')->info('订单创建成功', ['order_id' => 1001]);
    // 日志文件路径:runtime/logs/order.log
    

三、日志查看与清理

  1. 命令行查看
    使用 php think log 命令查看所有日志,支持按级别过滤:

    php think log --level=error  # 仅查看错误日志
    
  2. 自动清理策略

    • 按时间分割:配置 max_file_sizemax_files 实现日志按大小或数量自动归档。
    • 定时任务清理:通过Ubuntu的 cron 定期删除旧日志,例如:
      # 每天凌晨清理7天前的日志
      0 0 * * * find /path/to/project/runtime/logs/ -type f -mtime +7 -delete
      

四、高级管理

  1. 集中式日志(syslog)
    配置 typesyslog,将日志发送至Ubuntu系统日志服务,便于统一监控:

    return [
        'type' => 'syslog',
        'facility' => LOG_LOCAL0, // 系统日志设施
        'level' => ['error', 'critical'],
    ];
    
  2. 权限管理
    确保 runtime/logs/ 目录权限正确:

    sudo chown -R www-data:www-data runtime/logs/  # 保证Web服务器用户可写
    sudo chmod -R 755 runtime/logs/                # 限制权限防止未授权访问
    

五、常见问题解决

通过以上配置,可在Ubuntu环境中高效管理ThinkPHP日志,平衡调试需求与系统性能。

0
看了该问题的人还看了