You should use a function that sends the numbers your model generates to a domain that satisfies the constraints of the likelihood function. Don’t get too caught up on names. The logit function (or log-odds function) sends (0,1) \to \mathbb R, while inverse logit (or expit, or sigmoid, or standard logistic) sends \mathbb R \to (0, 1). As you can see, the names are all terrible. Better to focus on what they do. Are you producing numbers between 0 and 1 and you need to get real values? Use logit. Are you producing real numbers and need to constrain them to be between 0 and 1? Use sigmoid (inverse logit, whatever).
The same can be said of log and exp. Log sends \mathbb R^+ \to \mathbb R, while exp sends \mathbb R \to \mathbb R^+. You need to think about what your needs are and reach for the right tool.
The rate parameter \lambda of a Poisson must be strictly positive. If you use \lambda = \log({X\beta}), you will have \lambda <0 for any elements X\beta < 1, which will cause the sampler to error out. Unless you have a very good reason, and you’re positive (pun intended?) that X\beta is never less than 1, you should just use an exponential function.