createLogger
Creates a logger.
Usually loggers are used in static fields, so there is a possibility that the supplier is not initialized yet. Because of that, we're using lazy initialization here. This way, the logger will only be initialized on access when the supplier is (hopefully) initialized.