教程 pingora tutorial

错误日志

Pingora 提供完善的日志系统,可以记录 错误、警告、请求信息和运行状态。
合理配置错误日志,有助于运维排查问题和监控服务健康。

日志配置

Pingora 支持在配置文件中设置日志输出路径和日志级别:

yaml
logging:
  level: info   # 日志等级: debug, info, warn, error
  file: /var/log/pingora.log

`

日志等级说明

等级 说明
debug 最详细的调试信息,开发环境常用
info 普通运行信息,如启动、请求统计
warn 潜在问题或异常情况
error 错误信息,通常表示请求失败或 panic

日志输出方式

  • 标准输出:默认打印到终端,适合前台调试;
  • 文件输出:配置 logging.file 后,将日志写入指定文件;
  • 系统日志:结合 systemd,可通过 journalctl -u pingora 查看。

示例:记录错误

在自定义过滤器或处理函数中,使用日志宏记录错误:

rust
use log::{error, info};

fn handle_request(req: Request) -> Result<Response, Error> {
    if let Err(e) = process_request(&req) {
        error!("处理请求失败: {:?}", e);
        return Err(e);
    }
    info!("请求处理成功: {:?}", req.path());
    Ok(Response::new())
}

日志轮转

建议结合操作系统日志轮转机制(如 logrotate)管理日志文件,避免日志无限增长:

txt
/var/log/pingora.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
}

排查建议

  1. 检查错误等级日志:优先查看 error 和 warn 信息;
  2. 分析请求上下文:根据请求路径、客户端 IP、时间戳定位异常;
  3. 结合 panic 日志:查看是否存在未捕获的 panic 导致异常。

通过合理配置和使用 Pingora 的错误日志,可以在问题发生时快速定位原因,提高服务可靠性与可维护性。