主题
错误日志
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
}
排查建议
- 检查错误等级日志:优先查看
error
和warn
信息; - 分析请求上下文:根据请求路径、客户端 IP、时间戳定位异常;
- 结合 panic 日志:查看是否存在未捕获的 panic 导致异常。
通过合理配置和使用 Pingora 的错误日志,可以在问题发生时快速定位原因,提高服务可靠性与可维护性。