#!/usr/bin/env python3 # -*- coding: utf-8 -*- from datetime import datetime import logging class UtilitiesLogger: def __init__(self, name): self.logger = logging.getLogger(name) def set_level(self, loglevel): match loglevel: case 'debug': level = logging.DEBUG case 'error': level = logging.ERROR case 'info': level = logging.INFO case 'warning': level = logging.WARNING case _: level = logging.NOTSET self.logger.setLevel(level) console_handler = logging.StreamHandler() console_handler.setLevel(level) formatter = logging.Formatter('[%(asctime)s] %(levelname)s:%(name)s:%(message)s') console_handler.setFormatter(formatter) # Add the console handler only if there are no handlers already if not self.logger.handlers: self.logger.addHandler(console_handler) def set_filename(self, filename): file_handler = logging.FileHandler(filename) file_handler.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s,%(levelname)s,%(name)s,%(message)s') file_handler.setFormatter(formatter) # Add the console handler only if there are no handlers already if not self.logger.handlers: self.logger.addHandler(file_handler) def debug(self, message): self.logger.debug(message) def info(self, message): self.logger.info(message) def warning(self, message): self.logger.warning(message) def error(self, message): self.logger.error(message) def critical(self, message): self.logger.critical(message) # Example usage: # logger = Logger('my_logger') # logger.set_level('debug') # logger.debug('This is a debug message.') class Message: def printer(text): now = datetime.now() current_time = now.strftime("%H:%M:%S") # print('{} {}'.format(current_time, text), end='\r') print('{} {}'.format(current_time, text))