Completed
Push — master ( 12c888...988ad6 )
by Thomas
11:22
created

exabgp.logger   A

Complexity

Total Complexity 11

Size/Duplication

Total Lines 62
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 46
dl 0
loc 62
rs 10
c 0
b 0
f 0
wmc 11

9 Methods

Rating   Name   Duplication   Size   Complexity  
A _log.init() 0 3 1
A _log.debug() 0 3 1
A _log.info() 0 3 1
A log.logger() 0 5 2
A _log.error() 0 3 1
A _log.critical() 0 3 1
A _log.warning() 0 3 1
A _log.fatal() 0 3 1
A logfunc.logger() 0 4 2
1
import sys
2
import time
3
import logging
4
5
from exabgp.logger.option import option
6
from exabgp.logger.handler import getLogger
7
from exabgp.logger.format import formater
8
9
from exabgp.logger.format import lazyformat
10
from exabgp.logger.format import lazyattribute
11
from exabgp.logger.format import lazynlri
12
13
from exabgp.logger.history import history
14
from exabgp.logger.history import record
15
16
17
class _log(object):
18
    logger = None
19
20
    @staticmethod
21
    def init(env):
22
        option.setup(env)
23
24
    @classmethod
25
    def debug(cls, message, source='', level='DEBUG'):
26
        cls.logger(option.logger.debug, message, source, level)
27
28
    @classmethod
29
    def info(cls, message, source='', level='INFO'):
30
        cls.logger(option.logger.info, message, source, level)
31
32
    @classmethod
33
    def warning(cls, message, source='', level='WARNING'):
34
        cls.logger(option.logger.warning, message, source, level)
35
36
    @classmethod
37
    def error(cls, message, source='', level='ERROR'):
38
        cls.logger(option.logger.error, message, source, level)
39
40
    @classmethod
41
    def critical(cls, message, source='', level='CRITICAL'):
42
        cls.logger(option.logger.critical, message, source, level)
43
44
    @classmethod
45
    def fatal(cls, message, source='', level='FATAL'):
46
        cls.logger(option.logger.fatal, message, source, level)
47
48
49
class log(_log):
50
    def logger(logger, message, source, level):
51
        timestamp = time.localtime()
52
        for line in message.split('\n'):
53
            logger(option.formater(line, source, level, timestamp))
54
            record(line, source, level, timestamp)
55
56
57
class logfunc(_log):
58
    def logger(logger, message, source, level):
59
        if not option.log_enabled(source, level):
60
            return
61
        log.logger(logger, message(), source, level)
62