75 lines
2.1 KiB
Python
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))
|