init
This commit is contained in:
50
utils/logger.py
Normal file
50
utils/logger.py
Normal file
@@ -0,0 +1,50 @@
|
||||
import sys
|
||||
import os
|
||||
from datetime import datetime
|
||||
from loguru import logger
|
||||
from utils.config import Config
|
||||
|
||||
logger.remove()
|
||||
|
||||
LevelList = ["ERROR", "WARNING", "INFO", "DEBUG"]
|
||||
CodeColorDict = {"ERROR": "red", "WARNING": "yellow", "INFO": "green", "DEBUG": "blue"}
|
||||
|
||||
|
||||
def custom_format(record):
|
||||
color = CodeColorDict[record["level"].name]
|
||||
return f"<{color}>{record['level'].name}</{color}> : {record['message']}\n"
|
||||
|
||||
logger.add(sys.stdout, format=custom_format, colorize=True, level=Config.LogLevel)
|
||||
|
||||
def get_new_log_path():
|
||||
today = datetime.now().strftime("%Y-%m-%d")
|
||||
log_dir = "logs"
|
||||
os.makedirs(log_dir, exist_ok=True)
|
||||
|
||||
count = 1
|
||||
while True:
|
||||
filename = f"{today}-{count}.log"
|
||||
filepath = os.path.join(log_dir, filename)
|
||||
if not os.path.exists(filepath):
|
||||
return filepath
|
||||
count += 1
|
||||
|
||||
|
||||
log_file_path = get_new_log_path()
|
||||
logger.add(log_file_path, level=Config.LogLevel, format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message}")
|
||||
|
||||
def Log(msg, types):
|
||||
if types in CodeColorDict and LevelList.index(types) <= LevelList.index(Config.LogLevel):
|
||||
getattr(logger, types.lower())(msg)
|
||||
|
||||
def Error(msg):
|
||||
Log(msg, "ERROR")
|
||||
|
||||
def Warn(msg):
|
||||
Log(msg, "WARNING")
|
||||
|
||||
def Info(msg):
|
||||
Log(msg, "INFO")
|
||||
|
||||
def Debug(msg):
|
||||
Log(msg, "DEBUG")
|
||||
Reference in New Issue
Block a user