40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
import os
|
|
from datetime import datetime
|
|
|
|
import colorama
|
|
|
|
|
|
class Logger:
|
|
def __init__(self, log_file: str, datefmt: str = '%m/%d/%Y %I:%M:%S %p'):
|
|
colorama.init()
|
|
self.log_file = log_file
|
|
self.datefmt = datefmt
|
|
|
|
os.makedirs(os.path.dirname(log_file), exist_ok=True)
|
|
|
|
def log(self, level, message):
|
|
asctime = datetime.now().strftime(self.datefmt)
|
|
|
|
match level:
|
|
case 'debug':
|
|
print(f'\033[92m[{asctime}] - {message}\033[39m')
|
|
case 'info':
|
|
print(f'\033[96m[{asctime}] - {message}\033[39m')
|
|
case 'warn' | 'warning':
|
|
print(f'\033[93m[{asctime}] - {message}\033[39m')
|
|
case 'error':
|
|
print(f'\033[91m[{asctime}] - {message}\033[39m')
|
|
case _:
|
|
pass
|
|
|
|
def debug(self, message):
|
|
self.log('debug', message)
|
|
|
|
def info(self, message):
|
|
self.log('info', message)
|
|
|
|
def warning(self, message):
|
|
self.log('warning', message)
|
|
|
|
def error(self, message):
|
|
self.log('error', message)
|