Returns the default config dictionary and inits the logging system if requested
    
    Keyword arguments:
    level -- loglevel of the console handler (Default: logging.INFO)
    auto_init -- initialize the logging system with the provided config (Default: True)
    **kwargs -- additional options for the logging system

def default_config(level=logging.INFO, auto_init=True, new_formatter=False, **kwargs):
    """
    Returns the default config dictionary and inits the logging system if requested
    
    Keyword arguments:
    level -- loglevel of the console handler (Default: logging.INFO)
    auto_init -- initialize the logging system with the provided config (Default: True)
    **kwargs -- additional options for the logging system
    
    """
    formatters =  {
        'color': {
            '()': __name__ + '.ColorFormatter',
            'format': '[%(levelname)s] %(message)s'
        }
    }

    if new_formatter:
        formatters =  {
            'color': {
                '()': __name__ + '.NewColorFormatter',
                'format': '[{levelname}] {message}'
            }
        }

    options = {
        'version': 1,
        'disable_existing_loggers': False,
        'formatters': formatters,
        'filters': {},
        'handlers': {
            'console': {
                'class': 'logging.StreamHandler',
                'formatter': 'color',
                'level': level,#logging.getLevelName(level),
                'stream': 'ext://sys.stderr',
                }
            },
        'loggers': {
            },
        'root': {
            'level': 'NOTSET',
            'filters': [],
            'handlers': ['console'],
            }
        }

    options.update(kwargs)

    if auto_init:
        logging.config.dictConfig(options)
    return options