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