Package log will be removed after switching to use core framework log. Do not make further changes here!
Failf logs the fail info.
FailfWithOffset calls "Fail" and logs the error at "offset" levels above its caller (for example, for call chain f -> g -> FailfWithOffset(1, ...) error would be logged for "f").
Logf logs the info.