Улучшение логгеров
This commit is contained in:
@@ -3,21 +3,56 @@
|
|||||||
|
|
||||||
import sys
|
import sys
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
from config import ImportantPath, LogsSet
|
|
||||||
from ..analitics.message_to_file import write_message_to_file
|
from BotLibrary.configs import ProjectPath
|
||||||
from ..analitics.user_data_to_file import write_user_info_to_file
|
from BotLibrary.analitics.message_to_file import write_message_to_file
|
||||||
|
from BotLibrary.analitics.user_data_to_file import write_user_info_to_file
|
||||||
|
|
||||||
# Настройка экспорта модулей и логирования
|
# Настройка экспорта модулей и логирования
|
||||||
__all__ = ("logger", "setup_logger", "cmd_logginger", "error_cmd_logginger",
|
__all__ = ("logger", "setup_logger", "cmd_logginger", "error_cmd_logginger",
|
||||||
"logginger", "common_msg_logginger", )
|
"logginger", "common_msg_logginger", )
|
||||||
|
|
||||||
|
|
||||||
|
# Класс для параметров логгера
|
||||||
|
class LogsSet:
|
||||||
|
# Максимальный размер лог-файла
|
||||||
|
max_size = "500 MB"
|
||||||
|
|
||||||
|
# Шаблон логов для информации
|
||||||
|
info_text = (
|
||||||
|
"<green>{time:YYYY-MM-DD HH:mm:ss}</green> <red>|</red> "
|
||||||
|
"<blue>PRIMO-{extra[log_type]}</blue> <red>|</red> "
|
||||||
|
"<red>{extra[user]} |</red> <level>{message}</level>"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Шаблон логов для ошибок
|
||||||
|
error_text = (
|
||||||
|
"<level>{time:YYYY-MM-DD HH:mm:ss} | "
|
||||||
|
"<bold>ERROR-{extra[log_type]}</bold> | "
|
||||||
|
"{extra[user]} | {message}</level>"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Шаблон логов для отладки
|
||||||
|
debug_text = (
|
||||||
|
"<cyan>{time:YYYY-MM-DD HH:mm:ss}</cyan> <red>|</red> "
|
||||||
|
"<magenta>DEBUG-{extra[log_type]}</magenta> <red>|</red> "
|
||||||
|
"<yellow>{extra[user]} |</yellow> <level>{message}</level>"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Шаблон логов для предупреждений
|
||||||
|
warning_text = (
|
||||||
|
"<yellow>{time:YYYY-MM-DD HH:mm:ss}</yellow> <red>|</red> "
|
||||||
|
"<orange>WARNING-{extra[log_type]}</orange> <red>|</red> "
|
||||||
|
"<red>{extra[user]} |</red> <level>{message}</level>"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
# Создание обычного логгера + логгер в файл
|
# Создание обычного логгера + логгер в файл
|
||||||
async def setup_logger():
|
async def setup_logger():
|
||||||
logger.remove() # Удаляем все логгеры
|
logger.remove() # Удаляем все логгеры
|
||||||
|
|
||||||
# Пустой логгер для записи отступов в файл уровня TRACE
|
# Пустой логгер для записи отступов в файл уровня TRACE
|
||||||
logger.add(ImportantPath.log_file,
|
logger.add(ProjectPath.log_file,
|
||||||
rotation=LogsSet.max_size,
|
rotation=LogsSet.max_size,
|
||||||
format="\n\n\n",
|
format="\n\n\n",
|
||||||
backtrace=True,
|
backtrace=True,
|
||||||
@@ -32,7 +67,7 @@ async def setup_logger():
|
|||||||
format=LogsSet.info_text,
|
format=LogsSet.info_text,
|
||||||
level="INFO",
|
level="INFO",
|
||||||
filter=lambda record: record["level"].name == "INFO")
|
filter=lambda record: record["level"].name == "INFO")
|
||||||
logger.add(ImportantPath.log_file,
|
logger.add(ProjectPath.log_file,
|
||||||
rotation=LogsSet.max_size,
|
rotation=LogsSet.max_size,
|
||||||
format=LogsSet.info_text,
|
format=LogsSet.info_text,
|
||||||
backtrace=True,
|
backtrace=True,
|
||||||
@@ -46,21 +81,19 @@ async def setup_logger():
|
|||||||
format=LogsSet.error_text,
|
format=LogsSet.error_text,
|
||||||
level="ERROR",
|
level="ERROR",
|
||||||
filter=lambda record: record["level"].name == "ERROR")
|
filter=lambda record: record["level"].name == "ERROR")
|
||||||
logger.add(ImportantPath.log_error_file,
|
logger.add(ProjectPath.log_error_file,
|
||||||
rotation=LogsSet.max_size,
|
rotation=LogsSet.max_size,
|
||||||
format=LogsSet.error_text,
|
format=LogsSet.error_text,
|
||||||
backtrace=True,
|
backtrace=True,
|
||||||
diagnose=True,
|
diagnose=True,
|
||||||
level="ERROR",
|
level="ERROR",
|
||||||
filter=lambda record: record["level"].name == "ERROR")
|
filter=lambda record: record["level"].name == "ERROR")
|
||||||
return f"Логгеры - подключены!"
|
|
||||||
|
|
||||||
|
|
||||||
# Запись сообщения в файл и информации о пользователи
|
# Запись сообщения в файл и информации о пользователи
|
||||||
async def logginger(message):
|
async def logginger(message):
|
||||||
write_user_info_to_file(message.from_user)
|
write_user_info_to_file(message.from_user)
|
||||||
await write_message_to_file(message)
|
await write_message_to_file(message)
|
||||||
return f"Сообщение и информация о пользователи - успешно записаны!"
|
|
||||||
|
|
||||||
|
|
||||||
# Создание функции логирования на обычные сообщения
|
# Создание функции логирования на обычные сообщения
|
||||||
@@ -72,14 +105,12 @@ async def common_msg_logginger(message, name, message_type, log_type):
|
|||||||
else:
|
else:
|
||||||
logger.bind(log_type=log_type, user=f"@{message.from_user.username}").info(
|
logger.bind(log_type=log_type, user=f"@{message.from_user.username}").info(
|
||||||
f"Получено сообщение из ({name}) : {message.text}")
|
f"Получено сообщение из ({name}) : {message.text}")
|
||||||
return f"Логгер на обычный сообщения - успешно активирован"
|
|
||||||
|
|
||||||
|
|
||||||
# Специальный логгер для команд. Вывод в консоль, файл и запись информации о пользователи
|
# Специальный логгер для команд. Вывод в консоль, файл и запись информации о пользователи
|
||||||
async def cmd_logginger(message, log_type, text):
|
async def cmd_logginger(message, log_type, text):
|
||||||
await logginger(message)
|
await logginger(message)
|
||||||
logger.bind(log_type=log_type, user=f"@{message.from_user.username}").info(text)
|
logger.bind(log_type=log_type, user=f"@{message.from_user.username}").info(text)
|
||||||
return f"Логгер на команду - успешно активирован"
|
|
||||||
|
|
||||||
|
|
||||||
# Специальный логгер для ошибок с командами. Вывод в консоль, файл и запись информации о пользователи
|
# Специальный логгер для ошибок с командами. Вывод в консоль, файл и запись информации о пользователи
|
||||||
@@ -87,4 +118,3 @@ async def error_cmd_logginger(message, log_type, e):
|
|||||||
text_error = f"Ошибка при использовании команды /{log_type.lower()}: {str(e)}\n"
|
text_error = f"Ошибка при использовании команды /{log_type.lower()}: {str(e)}\n"
|
||||||
await logginger(message)
|
await logginger(message)
|
||||||
logger.bind(log_type=log_type, user=f"@{message.from_user.username}").error(text_error)
|
logger.bind(log_type=log_type, user=f"@{message.from_user.username}").error(text_error)
|
||||||
return text_error
|
|
||||||
|
|||||||
Reference in New Issue
Block a user