wraps functions, constructors and util object style collections of functions in entrance and exit logs using a logger provided by the consumer