Projekt

Obecné

Profil

Stáhnout (1.27 KB) Statistiky
| Větev: | Tag: | Revize:
1
import inspect
2
import logging
3
from pathlib import Path
4

    
5

    
6
class Logger:
7

    
8
    @staticmethod
9
    def get_names():
10
        stack = inspect.stack()
11

    
12
        file_name = inspect.getmodule(inspect.stack()[2][0]).__file__
13
        class_name = ""
14
        if "self" in stack[2][0].f_locals:
15
            class_name = stack[2][0].f_locals["self"].__class__.__name__ + "."
16
        function_name = stack[2][0].f_code.co_name
17

    
18
        return file_name, class_name, function_name
19

    
20
    @staticmethod
21
    def debug(message: str):
22
        names = Logger.get_names()
23
        logging.debug(f'{Path(names[0]).name}[{names[1]}{names[2]}()]: {message}')
24

    
25
    @staticmethod
26
    def info(message: str):
27
        names = Logger.get_names()
28
        logging.info(f'{Path(names[0]).name}[{names[1]}{names[2]}()]: {message}')
29

    
30
    @staticmethod
31
    def warning(message: str):
32
        names = Logger.get_names()
33
        logging.warning(f'{Path(names[0]).name}[{names[1]}{names[2]}()]: {message}')
34

    
35
    @staticmethod
36
    def error(message: str):
37
        names = Logger.get_names()
38
        logging.error(f'{Path(names[0]).name}[{names[1]}.{names[2]}()]: {message}')
39

    
40
    @staticmethod
41
    def critical(message: str):
42
        names = Logger.get_names()
43
        logging.critical(f'{Path(names[0]).name}[{names[1]}.{names[2]}()]: {message}')
(3-3/5)