Added basic logging functionality
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
import logging
|
||||
from utils.logger.formatter import Colored_Formatter
|
||||
|
||||
class Custom_Logger:
|
||||
console_handler: logging.StreamHandler
|
||||
colored_formatter: Colored_Formatter
|
||||
|
||||
@classmethod
|
||||
def initialize(cls):
|
||||
# Create the handler for logging to the console
|
||||
cls.console_handler = logging.StreamHandler()
|
||||
cls.console_handler.setLevel(logging.DEBUG)
|
||||
|
||||
# Create the colorful formatter
|
||||
cls.colored_formatter = Colored_Formatter()
|
||||
cls.console_handler.setFormatter(cls.colored_formatter)
|
||||
|
||||
# Create the loggers for the different sections of the app
|
||||
discordpy_logger = logging.getLogger("discord")
|
||||
discordpy_logger.addHandler(cls.console_handler)
|
||||
discordpy_logger.setLevel(logging.INFO)
|
||||
|
||||
app_logger = logging.getLogger("app")
|
||||
app_logger.addHandler(cls.console_handler)
|
||||
app_logger.setLevel(logging.DEBUG)
|
||||
|
||||
utils_logger = logging.getLogger("utils")
|
||||
utils_logger.addHandler(cls.console_handler)
|
||||
utils_logger.setLevel(logging.DEBUG)
|
||||
|
||||
|
||||
app_logger.debug("Logging successfully initialized")
|
||||
@@ -0,0 +1,30 @@
|
||||
from logging import Formatter
|
||||
from colorama import Style, Fore
|
||||
|
||||
class Colored_Formatter(Formatter):
|
||||
def __init__(self, fmt=None, datefmt='%Y-%m-%d %H:%M:%S', style='%'):
|
||||
super().__init__(fmt, datefmt, style)
|
||||
|
||||
def format(self, record):
|
||||
# Formatieren des Zeitstempels fett
|
||||
date = f"{Style.BRIGHT}{Fore.BLACK}{self.formatTime(record, self.datefmt)}{Style.RESET_ALL}"
|
||||
|
||||
# Färben des Log-Levels mit fester Breite
|
||||
levelname_color = {
|
||||
'DEBUG': Fore.CYAN,
|
||||
'INFO': Fore.BLUE,
|
||||
'WARNING': Fore.YELLOW,
|
||||
'ERROR': Fore.RED,
|
||||
'CRITICAL': f"{Style.BRIGHT}{Fore.RED}"
|
||||
}
|
||||
levelname = f"{levelname_color.get(record.levelname, Fore.WHITE)}{record.levelname:<8}{Fore.RESET}{Style.RESET_ALL}"
|
||||
|
||||
# Färben des Logger-Namens in Magenta mit fester Breite
|
||||
name = f"{Fore.MAGENTA}{record.name:<20}{Fore.RESET}"
|
||||
|
||||
# Die Nachricht bleibt unverändert
|
||||
message = record.getMessage()
|
||||
|
||||
# Zusammenfügen der gefärbten Teile
|
||||
formatted_record = f"{date} {levelname} {name} {message}"
|
||||
return formatted_record
|
||||
Reference in New Issue
Block a user