/
urusai
/
code_sample
Обзор
Документация
Войти
/
urusai
/
code_sample
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/settings/logs/settings.py
58 строк
2 KB
nick
linters
30 сен 2024, 16:13
30 сен 2024, 16:13
09a0f4a
Код
Авторство
О чём код?
from pydantic import Field, BaseSettings class SettingsLogs(BaseSettings): DEBUG: bool = Field(env="DEBUG", default=False) AUTO_MASK_LOGS: bool = Field(env="AUTO_MASK_LOGS", default=True) ENABLE_TELEMETRY: bool = Field(env="ENABLE_TELEMETRY", default=True) LOG_DATE_FMT: str = Field(env="LOG_DATE_FMT", default="%Y-%m-%d %H:%M:%S") @property def log_config(self): return { "version": 1, "disable_existing_loggers": False, "formatters": { "default": { "()": "logging.Formatter", "fmt": "%(levelname)s %(asctime)s %(message)s %(requests)s", "datefmt": self.LOG_DATE_FMT, }, "json": { "()": "utils.logs.json_logger.JSONLogFormatter", }, }, "handlers": { "default": { "formatter": "default", "class": "logging.StreamHandler", "stream": "ext://sys.stderr", }, "json": { "formatter": "json", "class": "asynclog.AsyncLogDispatcher", "func": "utils.logs.json_logger.write_log", }, }, "loggers": { "sqlalchemy.engine.Engine": { "handlers": ["json"], "level": "INFO" if self.DEBUG else "ERROR", "propagate": False, }, "uvicorn": { "handlers": ["json"], "level": "INFO", "propagate": False, }, }, } DEFAULT_SENSITIVE_KEY_WORDS = ("password",) class Config: env_file = ".env" env_file_encoding = "utf-8" settings_sensus_app = SettingsLogs()