Пример #1
0
    def __init__(self,
                 logger,
                 level,
                 name,
                 data=None,
                 reraise=True,
                 parent=None,
                 frame=None):
        self.action_id = next(_ACT_ID_ITER)
        self.logger = logger
        self.level = get_level(level)
        self.name = name

        self.data_map = data or {}
        self._reraise = reraise

        if frame is None:
            frame = sys._getframe(1)
        self.callpoint = Callpoint.from_frame(frame)

        self.begin_event = None
        self.end_event = None
        # these can go internal and be lazily created through properties
        self.warn_events = []
        self.exc_events = []

        if parent:
            self.parent_action = parent
        else:
            self.parent_action = logger.context.get_active_parent(logger, self)
        return
Пример #2
0
    def __init__(self,
                 logger,
                 level,
                 name,
                 data=None,
                 reraise=True,
                 parent=None,
                 frame=None):
        self.action_id = next(_ACT_ID_ITER)
        self.logger = logger
        self.level = get_level(level)
        try:
            self.name = unicode(name)
        except Exception:
            self.name = repr(name)

        self.data_map = data or {}
        self._reraise = reraise

        if frame is None:
            frame = sys._getframe(1)
        self.callpoint = Callpoint.from_frame(frame)

        self.begin_event = None
        self.end_event = None

        if parent:
            self.parent_action = parent
        else:
            self.parent_action = logger.context.get_active_parent(logger, self)
        return
Пример #3
0
    def __init__(self, logger, level, name,
                 data=None, reraise=True, parent=None, frame=None):
        self.action_id = next(_ACT_ID_ITER)
        self.logger = logger
        self.level = get_level(level)
        try:
            self.name = unicode(name)
        except Exception:
            self.name = repr(name)

        self.data_map = data or {}
        self._reraise = reraise

        if frame is None:
            frame = sys._getframe(1)
        self.callpoint = Callpoint.from_frame(frame)

        self.begin_event = None
        self.end_event = None

        if parent:
            self.parent_action = parent
        else:
            self.parent_action = logger.context.get_active_parent(logger, self)
        return
Пример #4
0
    def __init__(self, name, **kwargs):
        enable_begin = kwargs.pop("enable_begin", True)
        out_min_level = get_level(kwargs.pop("min_level", DEBUG))
        if kwargs:
            raise TypeError("unexpected keyword arguments: %r" % kwargs)
        # exc_filter = debug_callable(ThresholdFilter(exception=0))
        exc_filter = ThresholdFilter(exception=DEBUG)
        exc_formatter = Formatter("!! {exc_type}: {exc_tb_str}")
        exc_emitter = StreamEmitter("stderr")
        exc_sink = SensibleSink(exc_formatter, exc_emitter, [exc_filter])

        event_levels = {
            "success": out_min_level,
            "failure": get_prev_level(out_min_level),
            "exception": get_prev_level(out_min_level, 2),
        }

        out_filter = ThresholdFilter(**event_levels)
        # TODO: warn_char (requires len on FormatField)
        out_formatter = Formatter(OUT_TMPL)
        out_emitter = StreamEmitter("stdout")
        out_sink = SensibleSink(out_formatter, out_emitter, [out_filter])
        self.quantile_sink = q_sink = QuantileSink()
        sinks = [q_sink, exc_sink, out_sink]
        if enable_begin:
            beg_filter = ThresholdFilter(begin=DEBUG)
            beg_formatter = Formatter(BEG_TMPL)
            beg_sink = SensibleSink(beg_formatter, out_emitter, filters=[beg_filter], on="begin")
            sinks.append(beg_sink)
        super(BarnsworthLogger, self).__init__(name, sinks)
Пример #5
0
    def _get_syslog_priority(self, event_name, action):
        level = get_level(action.level)

        if event_name == 'warn':
            status = 'warn'
        elif event_name == 'begin':
            status = 'begin'
        else:
            status = action.status
        return self.priority_map[level][status]
Пример #6
0
    def __init__(self, base=None, **kw):
        # TODO: on-bind lookup behaviors?

        base = get_level(base or MAX_LEVEL)

        self.begin_level = get_level(kw.pop('begin', base) or MAX_LEVEL)
        self.success_level = get_level(kw.pop('success', base) or MAX_LEVEL)
        self.failure_level = get_level(kw.pop('failure', base) or MAX_LEVEL)
        self.exception_level = get_level(
            kw.pop('exception', base) or MAX_LEVEL)
        self.warn_level = get_level(kw.pop('warn', base) or MAX_LEVEL)
        self.block_comments = kw.pop('block_comments', False)
        self.verbose_check = kw.pop('verbose_check', None)
        if not self.verbose_check:
            verbose_flag = kw.pop('verbose_flag', 'verbose')
            self.verbose_check = lambda e: e.action.data_map.get(verbose_flag)

        if kw:
            raise TypeError('got unexpected keyword arguments: %r' % kw)
Пример #7
0
    def __init__(self, base=None, **kw):
        # TODO: on-bind lookup behaviors?

        base = get_level(base or MAX_LEVEL)

        self.begin_level = get_level(kw.pop('begin', base) or MAX_LEVEL)
        self.success_level = get_level(kw.pop('success', base) or MAX_LEVEL)
        self.failure_level = get_level(kw.pop('failure', base) or MAX_LEVEL)
        self.exception_level = get_level(kw.pop('exception', base)
                                         or MAX_LEVEL)
        self.warn_level = get_level(kw.pop('warn', base) or MAX_LEVEL)
        self.block_comments = kw.pop('block_comments', False)
        self.verbose_check = kw.pop('verbose_check', None)
        if not self.verbose_check:
            verbose_flag = kw.pop('verbose_flag', 'verbose')
            self.verbose_check = lambda e: e.action.data_map.get(verbose_flag)

        if kw:
            raise TypeError('got unexpected keyword arguments: %r' % kw)
Пример #8
0
def test_level_getting():
    assert get_level('debug') == DEBUG
    assert get_level('CRITICAL') == CRITICAL
    assert get_level(int(INFO._value)) == INFO
    assert get_level(DEFAULT_LEVEL) == DEFAULT_LEVEL