95 lines
4.2 KiB
Python
95 lines
4.2 KiB
Python
# BotLibrary/system/logs.py
|
|
# Создание логгеров и их шаблон для проекта
|
|
|
|
import sys
|
|
from loguru import logger
|
|
from ProjectsFiles import BotLogs, ProjectPath
|
|
|
|
|
|
# Создание обычного логгера + логгер в файл
|
|
async def setup_logger() -> None:
|
|
"""
|
|
Настройка логгеров для проекта, выводящих логи в консоль.
|
|
Логгеры конфигурируются в зависимости от настроек в BotLogs.
|
|
|
|
Если разрешено логирование, добавляются логи для уровней DEBUG, INFO, WARNING, ERROR.
|
|
"""
|
|
logger.remove() # Удаляем все логгеры
|
|
|
|
if BotLogs.permission and BotLogs.permission_to_file:
|
|
# Добавляем новый уровень START
|
|
logger.level("START", no=25, color="white", icon="🔸")
|
|
if BotLogs.permission and BotLogs.permission_new_user:
|
|
# Добавляем новый уровень NEW_USER
|
|
logger.level("NEW_USER", no=4, color="white", icon="👋")
|
|
if BotLogs.permission and BotLogs.permission_leave_user:
|
|
# Добавляем новый уровень LEAVE_USER
|
|
logger.level("LEAVE_USER", no=3, 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,
|
|
level="DEBUG",
|
|
filter=lambda record: record["level"].name == "DEBUG")
|
|
logger.add(sys.stderr,
|
|
colorize=True,
|
|
format=BotLogs.info_text,
|
|
level="INFO",
|
|
filter=lambda record: record["level"].name == "INFO")
|
|
logger.add(sys.stderr,
|
|
colorize=True,
|
|
format=BotLogs.warning_text,
|
|
level="WARNING",
|
|
filter=lambda record: record["level"].name == "WARNING")
|
|
logger.add(sys.stderr,
|
|
colorize=True,
|
|
format=BotLogs.error_text,
|
|
level="ERROR",
|
|
filter=lambda record: record["level"].name == "ERROR")
|
|
|
|
# Добавление логгера для записи в файл
|
|
if BotLogs.permission_to_file:
|
|
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")
|