code: func (n *Node) processRaftMessageLogger(ctx context.Context, msg *api.ProcessRaftMessageRequest) *logrus.Entry {
  	fields := logrus.Fields{
  		"method": "(*Node).ProcessRaftMessage",
  	}
  
  	if n.IsMember() {
  		fields["raft_id"] = fmt.Sprintf("%x", n.Config.ID)
  	}
  
  	if msg != nil && msg.Message != nil {
  		fields["from"] = fmt.Sprintf("%x", msg.Message.From)
  	}
  
  	return log.G(ctx).WithFields(fields)
  }
docs: // processRaftMessageLogger is used to lazily create a logger for
  // ProcessRaftMessage. Usually nothing will be logged, so it is useful to avoid
  // formatting strings and allocating a logger when it won't be used.