Projekt

Obecné

Profil

Stáhnout (1.27 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 ca436714 David Friesecký
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 1bdc90c0 David Friesecký
        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 ca436714 David Friesecký
        logging.debug(f'{Path(names[0]).name}[{names[1]}{names[2]}()]: {message}')
24 dbca269d David Friesecký
25
    @staticmethod
26 1bdc90c0 David Friesecký
    def info(message: str):
27
        names = Logger.get_names()
28 ca436714 David Friesecký
        logging.info(f'{Path(names[0]).name}[{names[1]}{names[2]}()]: {message}')
29 dbca269d David Friesecký
30
    @staticmethod
31 1bdc90c0 David Friesecký
    def warning(message: str):
32
        names = Logger.get_names()
33 ca436714 David Friesecký
        logging.warning(f'{Path(names[0]).name}[{names[1]}{names[2]}()]: {message}')
34 dbca269d David Friesecký
35
    @staticmethod
36 1bdc90c0 David Friesecký
    def error(message: str):
37
        names = Logger.get_names()
38
        logging.error(f'{Path(names[0]).name}[{names[1]}.{names[2]}()]: {message}')
39 dbca269d David Friesecký
40
    @staticmethod
41 1bdc90c0 David Friesecký
    def critical(message: str):
42
        names = Logger.get_names()
43
        logging.critical(f'{Path(names[0]).name}[{names[1]}.{names[2]}()]: {message}')