Blasta/blasta/utilities/logger.py
Schimon Jehudah, Adv. 3fa7aa9b40 Add logging.
2025-03-10 10:35:21 +02:00

75 lines
2.1 KiB
Python

#!/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))