context.go
func (c *contextT) With(keyvals ...interface{}) context.Context {
	return &contextT{ctx: newContext(c.ctx, keyvals)}
}
func (c *contextT) With(keyvals ...interface{}) context.Context {
	return &contextT{ctx: newContext(c.ctx, keyvals)}
}
func ( c * contextT ) With ( keyvals ... interface { } ) context . Context { return & contextT { ctx : newContext ( c . ctx , keyvals ) } }
// With returns a context.Context with the keyvals attached.
With returns a context . Context with the keyvals attached .