code: func getLogrusLogger(ctx context.Context, keys ...interface{}) *logrus.Entry {
  	var logger *logrus.Entry
  
  	// Get a logger, if it is present.
  	loggerInterface := ctx.Value(loggerKey{})
  	if loggerInterface != nil {
  		if lgr, ok := loggerInterface.(*logrus.Entry); ok {
  			logger = lgr
  		}
  	}
  
  	if logger == nil {
  		fields := logrus.Fields{}
  
  		// Fill in the instance id, if we have it.
  		instanceID := ctx.Value("instance.id")
  		if instanceID != nil {
  			fields["instance.id"] = instanceID
  		}
  
  		fields["go.version"] = runtime.Version()
  		// If no logger is found, just return the standard logger.
  		logger = logrus.StandardLogger().WithFields(fields)
  	}
  
  	fields := logrus.Fields{}
  	for _, key := range keys {
  		v := ctx.Value(key)
  		if v != nil {
  			fields[fmt.Sprint(key)] = v
  		}
  	}
  
  	return logger.WithFields(fields)
  }
docs: // GetLogrusLogger returns the logrus logger for the context. If one more keys
  // are provided, they will be resolved on the context and included in the
  // logger. Only use this function if specific logrus functionality is
  // required.