示例#1
0
文件: logs.py 项目: level12/blazeweb
def create_handlers_from_settings(settings):
    """
        used internally to setup logging for the settings.logs
    """
    # clear any previously setup handlers
    clear_settings_handlers()

    if not settings.logs.enabled:
        return

    # have to set the root logger lower than WARN (the default) or our
    # application logs will never be seen
    logging.root.setLevel(APPLICATION)

    if settings.logs.errors.enabled:
        format_str = "%(asctime)s - %(levelname)s - %(name)s - %(message)s"
        formatter = logging.Formatter(format_str)

        error_handler = RotatingFileHandler(
            path.join(settings.dirs.logs, 'errors.log'),
            maxBytes=settings.logs.max_bytes,
            backupCount=settings.logs.backup_count,
        )
        error_handler._from_blazeweb_settings = True
        error_handler.setLevel(logging.WARN)
        error_handler.setFormatter(formatter)
        logging.root.addHandler(error_handler)

    if settings.logs.application.enabled:
        class OnlyLevel25(logging.Filter):
            def filter(self, record):
                return record.levelno == 25

        format_str = "%(asctime)s - %(name)s - %(message)s"
        formatter = logging.Formatter(format_str)

        app_handler = RotatingFileHandler(
            path.join(settings.dirs.logs, 'application.log'),
            maxBytes=settings.logs.max_bytes,
            backupCount=settings.logs.backup_count,
        )
        app_handler._from_blazeweb_settings = True
        app_handler.setLevel(APPLICATION)
        app_handler.setFormatter(formatter)
        app_handler.addFilter(OnlyLevel25())
        logging.root.addHandler(app_handler)

    if settings.logs.email.enabled:
        format_str = "%(asctime)s - %(message)s"
        formatter = logging.Formatter(format_str)

        app_handler = RotatingFileHandler(
            path.join(settings.dirs.logs, 'email.log'),
            maxBytes=settings.logs.max_bytes,
            backupCount=settings.logs.backup_count,
        )
        app_handler._from_blazeweb_settings = True
        app_handler.setLevel(logging.INFO)
        app_handler.setFormatter(formatter)
        logging.getLogger('blazeweb.mail').addHandler(app_handler)
        logging.getLogger('blazeweb.mail').setLevel(logging.INFO)
示例#2
0
def create_handlers_from_settings(settings):
    """
        used internally to setup logging for the settings.logs
    """
    # clear any previously setup handlers
    clear_settings_handlers()

    if not settings.logs.enabled:
        return

    # have to set the root logger lower than WARN (the default) or our
    # application logs will never be seen
    logging.root.setLevel(APPLICATION)

    if settings.logs.errors.enabled:
        format_str = "%(asctime)s - %(levelname)s - %(name)s - %(message)s"
        formatter = logging.Formatter(format_str)

        error_handler = RotatingFileHandler(
            path.join(settings.dirs.logs, 'errors.log'),
            maxBytes=settings.logs.max_bytes,
            backupCount=settings.logs.backup_count,
        )
        error_handler._from_blazeweb_settings = True
        error_handler.setLevel(logging.WARN)
        error_handler.setFormatter(formatter)
        logging.root.addHandler(error_handler)

    if settings.logs.application.enabled:

        class OnlyLevel25(logging.Filter):
            def filter(self, record):
                return record.levelno == 25

        format_str = "%(asctime)s - %(name)s - %(message)s"
        formatter = logging.Formatter(format_str)

        app_handler = RotatingFileHandler(
            path.join(settings.dirs.logs, 'application.log'),
            maxBytes=settings.logs.max_bytes,
            backupCount=settings.logs.backup_count,
        )
        app_handler._from_blazeweb_settings = True
        app_handler.setLevel(APPLICATION)
        app_handler.setFormatter(formatter)
        app_handler.addFilter(OnlyLevel25())
        logging.root.addHandler(app_handler)

    if settings.logs.email.enabled:
        format_str = "%(asctime)s - %(message)s"
        formatter = logging.Formatter(format_str)

        app_handler = RotatingFileHandler(
            path.join(settings.dirs.logs, 'email.log'),
            maxBytes=settings.logs.max_bytes,
            backupCount=settings.logs.backup_count,
        )
        app_handler._from_blazeweb_settings = True
        app_handler.setLevel(logging.INFO)
        app_handler.setFormatter(formatter)
        logging.getLogger('blazeweb.mail').addHandler(app_handler)
        logging.getLogger('blazeweb.mail').setLevel(logging.INFO)