跳转到主要内容

日志记录约定

日志级别类别

etcd 使用 zap 库记录应用程序输出,输出按 级别 进行分类。日志消息的级别依据以下约定确定:

  • DebugLevel 日志通常非常庞大,通常在生产环境中禁用。

    • 示例:
      • 向远程对等成员发送一条普通消息
      • 将日志条目写入磁盘
  • InfoLevel 为默认的日志优先级。

    • 示例:
      • 启动配置
      • 开始创建快照
      • 向集群中添加新节点
      • 向认证子系统中添加新用户
  • 警告级别日志比信息级别日志更为重要,但无需逐条人工审查。

    • 示例:
      • 无法向远程对等成员发送 Raft 消息
      • 在配置的选举超时时间内未收到心跳消息
  • ErrorLevel 日志为高优先级。若应用程序运行正常,不应产生任何 ErrorLevel 日志。

    • 示例:
      • WAL 无法分配磁盘空间
  • PanicLevel 会记录一条消息,然后触发 panic。

    • 示例:
      • Raft 消息编码失败
  • FatalLevel 会记录一条消息,然后调用 os.Exit(1)。

    • 示例:
      • Raft 快照保存失败