code: func (lw *logWriter) parseContext(details map[string]string) (logContext, error) {
  	nodeID, ok := details["com.docker.swarm.node.id"]
  	if !ok {
  		return logContext{}, errors.Errorf("missing node id in details: %v", details)
  	}
  	delete(details, "com.docker.swarm.node.id")
  
  	serviceID, ok := details["com.docker.swarm.service.id"]
  	if !ok {
  		return logContext{}, errors.Errorf("missing service id in details: %v", details)
  	}
  	delete(details, "com.docker.swarm.service.id")
  
  	taskID, ok := details["com.docker.swarm.task.id"]
  	if !ok {
  		return logContext{}, errors.Errorf("missing task id in details: %s", details)
  	}
  	delete(details, "com.docker.swarm.task.id")
  
  	return logContext{
  		nodeID:    nodeID,
  		serviceID: serviceID,
  		taskID:    taskID,
  	}, nil
  }
docs: // parseContext returns a log context and REMOVES the context from the details map