logger refactor

This commit is contained in:
2024-12-18 13:40:50 +09:00
parent b8d3b953d2
commit 1e64a432ab
8 changed files with 168 additions and 297 deletions

55
touchh/utils/log.py Normal file
View File

@@ -0,0 +1,55 @@
import logging
import os
from dotenv import load_dotenv
# Загрузка переменных из .env
load_dotenv()
class CustomLogger:
"""
Универсальный логгер для использования в проекте.
"""
def __init__(self, name, log_level=None):
"""
Инициализирует логгер.
:param name: Имя логгера (обычно имя функции или класса)
:param log_level: Уровень логирования (по умолчанию из .env)
"""
self.logger = logging.getLogger(name)
# Уровень логирования по умолчанию из .env
default_level = os.getenv("LOG_LEVEL", "INFO").upper()
self.log_level = getattr(logging, log_level.upper(), getattr(logging, default_level, logging.INFO))
self.setup_logger()
def setup_logger(self):
"""
Настраивает логгер с обработчиком и форматом.
"""
self.logger.setLevel(self.log_level)
# Удаляем старые обработчики, чтобы избежать дублирования
if self.logger.hasHandlers():
self.logger.handlers.clear()
# Добавляем обработчик для файла
file_handler = logging.FileHandler("project.log")
file_handler.setFormatter(logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s"))
file_handler.setLevel(self.log_level)
# Добавляем обработчик для консоли
console_handler = logging.StreamHandler()
console_handler.setFormatter(logging.Formatter("%(name)s - %(levelname)s - %(message)s"))
console_handler.setLevel(self.log_level)
self.logger.addHandler(file_handler)
self.logger.addHandler(console_handler)
def get_logger(self):
"""
Возвращает настроенный логгер.
"""
return self.logger