Multivariate LogNormal distribution

Thanks for your help. However, I would like to have a distribution that works as the others, i.e. I would like to have a class on which I can call a .dist and I can use inside a model. For this reason, I tried the following:

def MvLogNormal_logp(value, mu, cov):
    res = pt.switch(pt.gt(value, 0), pt.log(value), -np.inf)
    return pm.MvNormal.logp(res, mu, cov)


def MvLogNormal_dist(mu, cov, size):
    return pt.exp(pm.MvNormal.dist(mu, cov, size=size))


class MvLogNormal:
    def __new__(
        cls,
        name,
        mu,
        cov,
    ):
        return pm.CustomDist(
            name, mu, cov, dist=MvLogNormal_dist, logp=MvLogNormal_logp
        )

    @classmethod
    def dist(cls, mu=None, cov=None, **kwargs):
        if mu is None:
            mu = kwargs["mu"]
        if cov is None:
            cov = kwargs["cov"]
        return pm.CustomDist.dist(
            mu,
            cov,
            class_name="MvLogNormal",
            logp=MvLogNormal_logp,
            dist=MvLogNormal_dist,
        )

However, I get the following error when trying to use it inside a model:

**TypeError** : Cannot convert Type TensorType(float64, ()) (of Variable Alloc.0) into Type TensorType(float64, (9,)). You can try to manually convert Alloc.0 into a TensorType(float64, (9,)).

What might be causing it? Do you have any other way to accomplish what I would like to do, in a simpler manner? Thanks a lot for your help!