0.7 Теперь появился логгер на старты

This commit is contained in:
Verum
2025-02-24 04:02:12 +07:00
parent f48d439a7b
commit 589b915206
17 changed files with 332 additions and 169 deletions

View File

@@ -13,7 +13,21 @@ class Logs:
"""Класс для логирования с разными уровнями через loguru."""
@staticmethod
def debug(text: str = "Логирование!", log_type: str = "Logs", user: str = "@Console", message: Message = None) -> None:
def start(text: str = "Логирование!", system: str = "PRIMO",
log_type: str = "AEP", user: str = "@Console", message: Message = None) -> None:
"""
Логирует сообщение на уровне DEBUG.
:param text: Сообщение для логирования.
:param log_type: Тип лога (например, "Logs").
:param user: Имя пользователя или источник вызова лога.
:param message: Сообщение от пользователя, если необходимо извлечь имя.
"""
logger.bind(system=system, user=user, log_type=log_type).log("START", text)
@staticmethod
def debug(text: str = "Логирование!", system : str = "DEBUG",
log_type: str = "Logs", user: str = "@Console", message: Message = None) -> None:
"""
Логирует сообщение на уровне DEBUG.
@@ -24,10 +38,11 @@ class Logs:
"""
if message:
user = username(message)
logger.bind(log_type=log_type, user=user).debug(text)
logger.bind(system=system, log_type=log_type, user=user).debug(text)
@staticmethod
def info(text: str = "Логирование!", log_type: str = "Logs", user: str = "@Console", message: Message = None) -> None:
def info(text: str = "Логирование!", system : str = "PRIMO",
log_type: str = "Logs", user: str = "@Console", message: Message = None) -> None:
"""
Логирует сообщение на уровне INFO.
@@ -38,10 +53,11 @@ class Logs:
"""
if message:
user = username(message)
logger.bind(log_type=log_type, user=user).info(text)
logger.bind(system=system, log_type=log_type, user=user).info(text)
@staticmethod
def warning(text: str = "Логирование!", log_type: str = "Logs", user: str = "@Console", message: Message = None) -> None:
def warning(text: str = "Логирование!", system : str = "WARNING",
log_type: str = "Logs", user: str = "@Console", message: Message = None) -> None:
"""
Логирует сообщение на уровне WARNING.
@@ -52,10 +68,11 @@ class Logs:
"""
if message:
user = username(message)
logger.bind(log_type=log_type, user=user).warning(text)
logger.bind(system=system, log_type=log_type, user=user).warning(text)
@staticmethod
def error(text: str = "Логирование!", log_type: str = "Logs", user: str = "@Console", message: Message = None) -> None:
def error(text: str = "Логирование!", system : str = "ERROR",
log_type: str = "Logs", user: str = "@Console", message: Message = None) -> None:
"""
Логирует сообщение на уровне ERROR.
@@ -66,4 +83,4 @@ class Logs:
"""
if message:
user = username(message)
logger.bind(log_type=log_type, user=user).error(text)
logger.bind(system=system, log_type=log_type, user=user).error(text)

View File

@@ -3,7 +3,7 @@
import sys
from loguru import logger
from ProjectsFiles import BotLogs
from ProjectsFiles import BotLogs, ProjectPath
# Создание обычного логгера + логгер в файл
@@ -16,8 +16,18 @@ async def setup_logger() -> None:
"""
logger.remove() # Удаляем все логгеры
if BotLogs.permission or BotLogs.permission_to_file:
# Добавляем новый уровень START
logger.level("START", no=25, color="white", icon="🔸")
# Настройка логирования в консоль для каждого уровня
if BotLogs.permission:
logger.add(sys.stderr,
colorize=True,
format=BotLogs.start_text,
level="START",
filter=lambda record: record["level"].name == "START"
)
logger.add(sys.stderr,
colorize=True,
format=BotLogs.debug_text,
@@ -39,21 +49,40 @@ async def setup_logger() -> None:
level="ERROR",
filter=lambda record: record["level"].name == "ERROR")
# Добавление логгера для записи в файл (закомментированное, по необходимости активируется)
# Добавление логгера для записи в файл
if BotLogs.permission_to_file:
# Uncomment and adjust if file logging is required
# logger.add(ProjectPath.log_file,
# rotation=BotLogs.max_size,
# format=BotLogs.info_text,
# backtrace=True,
# diagnose=True,
# level="INFO",
# filter=lambda record: record["level"].name == "INFO")
# logger.add(ProjectPath.log_error_file,
# rotation=BotLogs.max_size,
# format=BotLogs.error_text,
# backtrace=True,
# diagnose=True,
# level="ERROR",
# filter=lambda record: record["level"].name == "ERROR")
return
logger.add(ProjectPath.start_log_file,
rotation=BotLogs.max_size,
format=BotLogs.start_text,
backtrace=True,
diagnose=True,
level="START",
filter=lambda record: record["level"].name == "START")
logger.add(ProjectPath.debug_log_file,
rotation=BotLogs.max_size,
format=BotLogs.debug_text,
backtrace=True,
diagnose=True,
level="DEBUG",
filter=lambda record: record["level"].name == "DEBUG")
logger.add(ProjectPath.info_log_file,
rotation=BotLogs.max_size,
format=BotLogs.info_text,
backtrace=True,
diagnose=True,
level="INFO",
filter=lambda record: record["level"].name == "INFO")
logger.add(ProjectPath.warning_log_file,
rotation=BotLogs.max_size,
format=BotLogs.warning_text,
backtrace=True,
diagnose=True,
level="WARNING",
filter=lambda record: record["level"].name == "WARNING")
logger.add(ProjectPath.error_log_file,
rotation=BotLogs.max_size,
format=BotLogs.error_text,
backtrace=True,
diagnose=True,
level="ERROR",
filter=lambda record: record["level"].name == "ERROR")