First let's state a well-known characterization of gamma function.

If f is a positive function on positive real numbers such that: (1).f(x+1)=xf(x); (2).f(1)=1; (3).logf is convex, then f(x) is gamma function.

Now here I'm wondering how many ways can we characterize gamma function like the above? Especially if we consider it as a function on complex plane with poles.

ps: I'm not asking different ways to express gamma function explicitly, but the abstraction of it.