错误日志
Pingora 提供完善的日志系统,可以记录 错误、警告、请求信息和运行状态。
合理配置错误日志,有助于运维排查问题和监控服务健康。
日志配置
Pingora 支持在配置文件中设置日志输出路径和日志级别:
logging:
level: info # 日志等级: debug, info, warn, error
file: /var/log/pingora.log
`
日志等级说明
| 等级 | 说明 |
|---|---|
| debug | 最详细的调试信息,开发环境常用 |
| info | 普通运行信息,如启动、请求统计 |
| warn | 潜在问题或异常情况 |
| error | 错误信息,通常表示请求失败或 panic |
日志输出方式
- 标准输出:默认打印到终端,适合前台调试;
- 文件输出:配置
logging.file后,将日志写入指定文件; - 系统日志:结合 systemd,可通过
journalctl -u pingora查看。
示例:记录错误
在自定义过滤器或处理函数中,使用日志宏记录错误:
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)管理日志文件,避免日志无限增长:
/var/log/pingora.log {
daily
rotate 7
compress
missingok
notifempty
}
排查建议
- 检查错误等级日志:优先查看
error和warn信息; - 分析请求上下文:根据请求路径、客户端 IP、时间戳定位异常;
- 结合 panic 日志:查看是否存在未捕获的 panic 导致异常。
通过合理配置和使用 Pingora 的错误日志,可以在问题发生时快速定位原因,提高服务可靠性与可维护性。
相关内容
- 高级主题 (WIP) 探索 Pingora 的高级特性,包括内部机制、异步运行时、线程模型和自定义扩展。
- 后台服务 学习如何在 Pingora 中配置和运行后台服务,包括定时任务、异步执行和守护进程管理。
- 异步上下文中的阻塞代码 学习如何在 Pingora 异步运行时中处理阻塞代码,确保高并发请求环境下的性能和稳定性。
- 构建 HTTP 代理 学习如何使用 Pingora 构建 HTTP 代理服务,包括基本请求转发、上游配置和自定义过滤器。
- 配置文件 了解 Pingora 的配置文件结构、主要参数及其作用,学习如何为不同场景编写高效、清晰的配置。
- 连接池与复用 学习如何在 Pingora 中使用连接池和连接复用,提高代理服务的性能和资源利用率。