Redis 的 list 和 stream:异步记录请求信息

在 Web 开发中,常常需要对请求信息进行记录,形成日志以便于后期评估应用的性能。请求信息通常包含客户端地址、请求的 URL、请求时间及请求执行时间。在程序中,可以以同步或异步的方式完成这一需求。同步方式是指请求信息写入日志文件后才返回数据给客户端,异步方式则是在返回数据之前以新线程或进程完成对请求信息的记录。开源的日志包有:

  1. Zap:出自 Uber 团队,以高性能著称;
  2. Zerolog:以易用性著称,支持 7 种日志级别;
  3. Logrus:兼容标准日志包格式,也是本人常用的日志包;
  4. apex/log:受 Logrus 启发,简化操作后的 Logrus;
  5. Log15:日志可读性强;

5 个日志包的详细介绍可以看《5 种结构化 Go 日志包对比分析》这篇文章。