Add a function that exposes the calldepth so it can be built on.

Passing 2 here means that `runtime.Caller(3)` now gets called. Previously Logf was calling `runtime.Caller(2)`. Is this intentional?