Passed
Pull Request — develop (#39)
by inkhey
02:25
created

tracim_backend.lib.utils.logger.Logger.critical()   A

Complexity

Conditions 1

Size

Total Lines 3
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nop 3
1
# -*- coding: utf-8 -*-
2
import logging
3
4
5
class Logger(object):
6
    """
7
    Global logger
8
    """
9
    TPL = '[{cls}] {msg}'
10
11
    def __init__(self, logger_name):
12
        self._name = logger_name
13
        self._logger = logging.getLogger(self._name)
14
15
    @classmethod
16
    def _txt(cls, instance_or_class):
17
        if instance_or_class.__class__.__name__ in ('function', 'type'):
18
            return instance_or_class.__name__
19
        else:
20
            return instance_or_class.__class__.__name__
21
22
    def debug(self, instance_or_class, message):
23
        self._logger.debug(
24
            Logger.TPL.format(cls=self._txt(instance_or_class), msg=message)
25
        )
26
27
    def error(self, instance_or_class, message, exc_info=0):
28
        self._logger.error(
29
            Logger.TPL.format(
30
                cls=self._txt(instance_or_class),
31
                msg=message,
32
                exc_info=exc_info
33
            )
34
        )
35
36
    def info(self, instance_or_class, message):
37
        self._logger.info(
38
            Logger.TPL.format(cls=self._txt(instance_or_class), msg=message)
39
        )
40
41
    def warning(self, instance_or_class, message):
42
        self._logger.warning(
43
            Logger.TPL.format(cls=self._txt(instance_or_class), msg=message)
44
        )
45
46
    def critical(self, instance_or_class, message):
47
        self._logger.critical(
48
            Logger.TPL.format(cls=self._txt(instance_or_class), msg=message)
49
        )
50
51
52
logger = Logger('tracim')
53