69 lines
1.9 KiB
Python

import inspect
import traceback
from utils.utils import trace_origin
class bcolors:
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKCYAN = '\033[96m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
class logger:
def debug(*args, **kwargs):
from infra.config import Settings
if not Settings.EnableDebugMessages:
return
print(bcolors.HEADER, end='[DEBUG] ')
print(*args, **kwargs)
print(bcolors.ENDC, end='')
def error(*args, **kwargs):
print(bcolors.FAIL, end='[ERROR] ')
print(*args, **kwargs)
print(bcolors.ENDC, end='')
def warn(*args, trace_origin_flag=False, stacklevel=0, \
print_stack=False, **kwargs):
print(bcolors.WARNING, end='[WARNING] ')
if trace_origin_flag:
trace_origin(inspect.currentframe(), stacklevel)
if print_stack:
print(traceback.format_exc())
print(*args, **kwargs)
print(bcolors.ENDC, end='')
def verbose(*args, trace_origin_flag=False, stacklevel=0, **kwargs):
from infra.config import Settings
if not Settings.EnableVerboseMessages:
return
if trace_origin_flag:
trace_origin(inspect.currentframe(), stacklevel)
print(bcolors.OKCYAN, end='[VERBOSE] ')
print(*args, **kwargs)
print(bcolors.ENDC, end='')
def log(*args, **kwargs):
print(bcolors.OKGREEN, end='[LOG] ')
print(*args, **kwargs)
print(bcolors.ENDC, end='')
def info(*args, **kwargs):
print(bcolors.OKBLUE, end='[INFO] ')
print(*args, **kwargs)
print(bcolors.ENDC, end='')
class DisableVerbose(object):
def __enter__(self):
from infra.config import Settings
self.verbose_flag = Settings.EnableVerboseMessages
Settings.EnableVerboseMessages = False
def __exit__(self, exc_type, exc_value, traceback):
from infra.config import Settings
Settings.EnableVerboseMessages = self.verbose_flag