Coverage for src/pyselector/logger.py: 83%

18 statements  

« prev     ^ index     » next       coverage.py v7.2.2, created at 2023-03-29 10:57 -0300

1# logger.py 

2 

3from __future__ import annotations 

4 

5import logging 

6 

7 

8class C: 

9 DEBUG = "\33[37;2m" 

10 BOLD_RED = "\033[31;1;6m" 

11 RED = "\33[31m" 

12 YELLOW = "\33[33m" 

13 CYAN = "\33[36m" 

14 RESET = "\33[0m" 

15 

16 

17FMT = "[{levelname:^7}] {name}: {message}" 

18 

19FORMATS = { 

20 logging.DEBUG: f"{C.DEBUG}{FMT}{C.RESET}", 

21 logging.INFO: f"{C.CYAN}{FMT}{C.RESET}", 

22 logging.WARNING: f"{C.YELLOW}{FMT}{C.RESET}", 

23 logging.ERROR: f"{C.RED}{FMT}{C.RESET}", 

24 logging.CRITICAL: f"{C.BOLD_RED}{FMT}{C.RESET}", 

25} 

26 

27 

28class CustomFormatter(logging.Formatter): 

29 def format(self, record): 

30 log_fmt = FORMATS[record.levelno] 

31 formatter = logging.Formatter(log_fmt, style="{") 

32 return formatter.format(record) 

33 

34 

35handler = logging.StreamHandler() 

36handler.setFormatter(CustomFormatter())