code: func CtxWithDefaultLogger(ctx context.Context, route, userID string) context.Context {
  	var defaultLogger logger.Logger
  	logrusLogger, ok := logger.Log.(logrus.FieldLogger)
  	if ok {
  		requestID := pcontext.GetFromPropagateCtx(ctx, constants.RequestIDKey)
  		if rID, ok := requestID.(string); ok {
  			if rID == "" {
  				requestID = uuid.New()
  			}
  		} else {
  			requestID = uuid.New()
  		}
  		defaultLogger = logrusLogger.WithFields(
  			logrus.Fields{
  				"route":     route,
  				"requestId": requestID,
  				"userId":    userID,
  			})
  	} else {
  		defaultLogger = logger.Log
  	}
  
  	return context.WithValue(ctx, constants.LoggerCtxKey, defaultLogger)
  }
docs: // CtxWithDefaultLogger inserts a default logger on ctx to be used on handlers and remotes.
  // If using logrus, userId, route and requestId will be added as fields.
  // Otherwise the pitaya logger will be used as it is.