context.go
func (c *contextT) Format(f fmt.State, ch rune) {
	if ch == 'v' && f.Flag('+') {
		fmt.Fprint(f, c.ctx)
		return
	}
	buf := pool.AllocBuffer()
	list := List(fromContext(c.ctx))
	list.writeToBuffer(buf)
	f.Write(buf.Bytes())
	pool.ReleaseBuffer(buf)
}
func (c *contextT) Format(f fmt.State, ch rune) {
	if ch == 'v' && f.Flag('+') {
		fmt.Fprint(f, c.ctx)
		return
	}
	buf := pool.AllocBuffer()
	list := List(fromContext(c.ctx))
	list.writeToBuffer(buf)
	f.Write(buf.Bytes())
	pool.ReleaseBuffer(buf)
}
// Format implements the fmt.Formatter interface. If
// the context is printed with "%+v", then it prints
// using the String method of the wrapped context.