Browse Source

raft: better logging for leader transition

Xiang Li 11 years ago
parent
commit
46ebf69c02
1 changed files with 7 additions and 2 deletions
  1. 7 2
      raft/node.go

+ 7 - 2
raft/node.go

@@ -219,13 +219,18 @@ func (n *node) run(r *raft) {
 		}
 
 		if rd.SoftState != nil && lead != rd.SoftState.Lead {
-			log.Printf("raft: leader changed from %x to %x", lead, rd.SoftState.Lead)
-			lead = rd.SoftState.Lead
 			if r.hasLeader() {
+				if lead == None {
+					log.Printf("raft: elected leader %x at term %d", rd.SoftState.Lead, r.Term)
+				} else {
+					log.Printf("raft: leader changed from %x to %x at term %d", lead, rd.SoftState.Lead, r.Term)
+				}
 				propc = n.propc
 			} else {
+				log.Printf("raft: lost leader %x at term %d", lead, r.Term)
 				propc = nil
 			}
+			lead = rd.SoftState.Lead
 		}
 
 		select {