reduce use of logger.exception() for non-critical exceptions

logger.exception(msg) has been replaced with logger.warn(msg, exc_info=True)
    which achieves the same result with a different log level