Make loggers get created lazily, refactoring to support this behavior an...

...d (hopefully) make the code more understandable