

def get_logger(logger_name=None):
    "\n    The common pattern for using this method is to create a logger instance in your class constructor:\n      >>> self._logger = get_logger(__name__)\n\n    Then use that logger instance anywhere you'd place a print statement. Provide extra arguments directly to the\n    logger method instead of using string.format:\n      >>> self._logger.warning('The file {} was not found.', filename)\n\n    Do not use print() in the app code -- we should be using a logger instead.\n        - This gives us much more granular and semantic control over what the system is outputting (via the log level).\n        - It ensures multiple threads will not be writing to stdout at the same time.\n        - The work of doing string formatting is only done if the message is actually going to be output.\n\n    :param logger_name: The name of the logger -- in most cases this just should be the module name (__name__)\n    :type logger_name: str\n    :return: The logger instance\n    :rtype: logbook.Logger\n    "
    name_without_package = name_without_package.rsplit('.', 1)[(- 1)]
    return Logger(name_without_package)

dataset/ETHPy150Open box/ClusterRunner/app/util/log.py get_logger/VarMisuse@16/406 `logger_name`->`name_without_package`