Projekt

Obecné

Profil

Stáhnout (1.21 KB) Statistiky
| Větev: | Tag: | Revize:
1 1bdc90c0 David Friesecký
import inspect
2 dbca269d David Friesecký
import logging
3 1bdc90c0 David Friesecký
from pathlib import Path
4 dbca269d David Friesecký
5
6
class Logger:
7
8
    @staticmethod
9 1bdc90c0 David Friesecký
    def get_names():
10
        stack = inspect.stack()
11
        file_name = inspect.getfile(stack[2][0].f_locals["self"].__class__)
12
        class_name = stack[2][0].f_locals["self"].__class__.__name__
13
        function_name = stack[2][0].f_code.co_name
14
15
        return file_name, class_name, function_name
16
17
    @staticmethod
18
    def debug(message: str):
19
        names = Logger.get_names()
20
        logging.debug(f'{Path(names[0]).name}[{names[1]}.{names[2]}()]: {message}')
21 dbca269d David Friesecký
22
    @staticmethod
23 1bdc90c0 David Friesecký
    def info(message: str):
24
        names = Logger.get_names()
25
        logging.info(f'{Path(names[0]).name}[{names[1]}.{names[2]}()]: {message}')
26 dbca269d David Friesecký
27
    @staticmethod
28 1bdc90c0 David Friesecký
    def warning(message: str):
29
        names = Logger.get_names()
30
        logging.warning(f'{Path(names[0]).name}[{names[1]}.{names[2]}()]: {message}')
31 dbca269d David Friesecký
32
    @staticmethod
33 1bdc90c0 David Friesecký
    def error(message: str):
34
        names = Logger.get_names()
35
        logging.error(f'{Path(names[0]).name}[{names[1]}.{names[2]}()]: {message}')
36 dbca269d David Friesecký
37
    @staticmethod
38 1bdc90c0 David Friesecký
    def critical(message: str):
39
        names = Logger.get_names()
40
        logging.critical(f'{Path(names[0]).name}[{names[1]}.{names[2]}()]: {message}')