Logging conventions
Logging level categories
etcd uses the zap library for logging application output categorized into levels. A log message’s level is determined according to these conventions:
-
DebugLevel logs are typically voluminous, and are usually disabled in production.
-
Examples:
- Send a normal message to a remote peer
- Write a log entry to disk
-
InfoLevel is the default logging priority.
-
Examples:
- Startup configuration
- Start to do snapshot
- Add a new node into the cluster
- Add a new user into auth subsystem
-
WarnLevel logs are more important than Info, but don’t need individual human review.
-
Examples:
- Failure to send Raft message to a remote peer
- Failure to receive heartbeat message within the configured election timeout
-
ErrorLevel logs are high-priority. If an application is running smoothly, it shouldn’t generate any error-level logs.
-
Examples:
- Failure to allocate disk space for WAL
-
PanicLevel logs a message, then panics.
-
Examples:
- Failure to encode Raft messages
-
FatalLevel logs a message, then calls os.Exit(1).
-
Examples:
- Failure to save Raft snapshot
Last modified October 14, 2025: Update logging conventions to more accurately reflect zap (#1064) (12bb63a)
