sprinkle in some calls to a logger protocol with different levels which can be injected or defaulted to a built-in logging implementation