def init(base_level=DEFAULT_BASE_LOGGING_LEVEL,<EOL>verbose_level=DEFAULT_VERBOSE_LOGGING_LEVEL,<EOL>logging_config=None):
if logging_config is None:<EOL><INDENT>logging_config = {}<EOL><DEDENT>logging_config = logging_config or LOGGER<EOL>log_file = LOGGER['<STR_LIT>']['<STR_LIT:file>']['<STR_LIT:filename>']<EOL>log_dir = os.path.dirname(os.path.expanduser(log_file))<EOL>if os.path.isfile(log_dir):<EOL><INDENT>sys.exit('<STR_LIT>'<EOL>'<STR_LIT>'<EOL>.format(log_dir))<EOL><DEDENT>try:<EOL><INDENT>if not os.path.exists(log_dir) and not len(log_dir) == <NUM_LIT:0>:<EOL><INDENT>os.makedirs(log_dir)<EOL><DEDENT>dictconfig.dictConfig(logging_config)<EOL>lgr = logging.getLogger('<STR_LIT:user>')<EOL>lgr.setLevel(base_level)<EOL>return lgr<EOL><DEDENT>except ValueError as e:<EOL><INDENT>sys.exit('<STR_LIT>'<EOL>'<STR_LIT>'<EOL>'<STR_LIT>'<EOL>.format(log_file, e))<EOL><DEDENT>
initializes a base logger

    you can use this to init a logger in any of your files.
    this will use config.py's LOGGER param and logging.dictConfig to configure
    the logger for you.

    :param int|logging.LEVEL base_level: desired base logging level
    :param int|logging.LEVEL verbose_level: desired verbose logging level
    :param dict logging_dict: dictConfig based configuration.
     used to override the default configuration from config.py
    :rtype: `python logger`