def METHOD_NAME(self, msg, level=1):
    """ Print a basic message with a given level. The message is possibly
        logged and/or written to stderr depending on the verbosity setting.
    """
    # three basic level of info messages
    # level == 0 - always printed even in the silent mode - not recommended
    # level == 1 - normal info suppressed in silent mode
    # level >= 2 - debuging message (additional levels allowed)
    # messages ALWAYS logged (as either info or debug)
    level = max(0, level)
    verbosity = max(0, getattr(self, "verbosity", 1))
    # everything with level 2 or higher is DEBUG
    if level >= 2:
        prefix = "DEBUG"
        logger.debug(msg)
    # levels 0 (silent) and 1 (default-verbose)
    else:
        prefix = "INFO"
        logger.info(msg)
    if level <= verbosity:
        self.stdout.write("%s: %s\n" % (prefix, msg))