Initial clean commit of the project
This commit is contained in:
0
app/core/__init__.py
Normal file
0
app/core/__init__.py
Normal file
18
app/core/config.py
Normal file
18
app/core/config.py
Normal file
@@ -0,0 +1,18 @@
|
||||
from pydantic_settings import BaseSettings, SettingsConfigDict
|
||||
|
||||
class Settings(BaseSettings):
|
||||
# Учетные данные приложения Яндекс.OAuth
|
||||
YANDEX_CLIENT_ID: str
|
||||
YANDEX_CLIENT_SECRET: str
|
||||
|
||||
# URL API Яндекс.Метрики
|
||||
YANDEX_METRIKA_API_URL: str = "https://api-metrika.yandex.net"
|
||||
|
||||
# Уровень логирования
|
||||
LOG_LEVEL: str = "INFO"
|
||||
|
||||
# Указываем, что нужно читать переменные из файла .env
|
||||
model_config = SettingsConfigDict(env_file=".env")
|
||||
|
||||
# Создаем единый объект настроек для всего приложения
|
||||
settings = Settings()
|
||||
29
app/core/logging.py
Normal file
29
app/core/logging.py
Normal file
@@ -0,0 +1,29 @@
|
||||
import sys
|
||||
from loguru import logger
|
||||
from .config import settings
|
||||
|
||||
def setup_logging():
|
||||
"""
|
||||
Настраивает Loguru для вывода в консоль и в файл с ротацией.
|
||||
"""
|
||||
logger.remove() # Сначала удаляем стандартный обработчик
|
||||
|
||||
# Настраиваем логирование в консоль (stderr) с цветом
|
||||
logger.add(
|
||||
sys.stderr,
|
||||
level=settings.LOG_LEVEL.upper(),
|
||||
format="<green>{time:YYYY-MM-DD HH:mm:ss}</green> | <level>{level: <8}</level> | <level>{message}</level>",
|
||||
colorize=True
|
||||
)
|
||||
|
||||
# Настраиваем логирование в файл
|
||||
logger.add(
|
||||
"metrics.log", # Имя файла
|
||||
level=settings.LOG_LEVEL.upper(),
|
||||
format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function} - {message}",
|
||||
rotation="1 MB", # Ротация, когда файл достигнет 1 MB
|
||||
compression="zip", # Сжимать старые файлы логов в zip
|
||||
enqueue=True, # Делает запись безопасной для многопоточности
|
||||
backtrace=True, # Показывает полный стектрейс при ошибках
|
||||
diagnose=True # Добавляет полезную информацию для отладки ошибок
|
||||
)
|
||||
Reference in New Issue
Block a user