code: func Use(ctx context.Context, factories ...logging.Factory) context.Context {
  	if cur := logging.GetFactory(ctx); cur != nil {
  		factories = append([]logging.Factory{cur}, factories...)
  	}
  	return logging.SetFactory(ctx, func(ic context.Context) logging.Logger {
  		loggers := make([]logging.Logger, len(factories))
  		for i, f := range factories {
  			loggers[i] = f(ic)
  		}
  		return &teeImpl{ic, loggers}
  	})
  }
docs: // Use adds a tee logger to the context, using the logger factory in
  // the context, as well as the other loggers produced by given factories.
  //
  // We use factories (instead of logging.Logger instances), since we must be able
  // to produce logging.Logger instances bound to contexts to be able to use
  // logging levels are fields (they are part of the context state).