Total Complexity | 8 |
Total Lines | 53 |
Duplicated Lines | 0 % |
Changes | 0 |
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 |