use custom overridable logger instead of NSLog