Files
neonsr/utils/logger.py
Naruse ec8972d5d6 init
2025-04-15 19:36:05 +08:00

51 lines
1.3 KiB
Python

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")