code: func (h *ExtendedHeader) Log(logger utils.Logger) {
  	if h.IsLongHeader {
  		var token string
  		if h.Type == protocol.PacketTypeInitial || h.Type == protocol.PacketTypeRetry {
  			if len(h.Token) == 0 {
  				token = "Token: (empty), "
  			} else {
  				token = fmt.Sprintf("Token: %#x, ", h.Token)
  			}
  			if h.Type == protocol.PacketTypeRetry {
  				logger.Debugf("\tLong Header{Type: %s, DestConnectionID: %s, SrcConnectionID: %s, %sOrigDestConnectionID: %s, Version: %s}", h.Type, h.DestConnectionID, h.SrcConnectionID, token, h.OrigDestConnectionID, h.Version)
  				return
  			}
  		}
  		logger.Debugf("\tLong Header{Type: %s, DestConnectionID: %s, SrcConnectionID: %s, %sPacketNumber: %#x, PacketNumberLen: %d, Length: %d, Version: %s}", h.Type, h.DestConnectionID, h.SrcConnectionID, token, h.PacketNumber, h.PacketNumberLen, h.Length, h.Version)
  	} else {
  		logger.Debugf("\tShort Header{DestConnectionID: %s, PacketNumber: %#x, PacketNumberLen: %d, KeyPhase: %d}", h.DestConnectionID, h.PacketNumber, h.PacketNumberLen, h.KeyPhase)
  	}
  }
docs: // Log logs the Header