Начало разработки обработчика настроек приложения
This commit is contained in:
122
net/xeaf/rack/utils/settings/configs/logging.py
Normal file
122
net/xeaf/rack/utils/settings/configs/logging.py
Normal file
@@ -0,0 +1,122 @@
|
||||
# DRF Rack
|
||||
# Библиотека классов расширений для Django REST Framework
|
||||
#
|
||||
# Автор: Николай В. Анохин <n.anokhin@xeaf.net>
|
||||
# Все права защищены. Лицензия: MIT
|
||||
|
||||
"""
|
||||
Параметры конфигурации системы журналирования
|
||||
"""
|
||||
|
||||
from net.xeaf.rack.utils.settings import LogDebugFilter
|
||||
from net.xeaf.rack.utils.settings import RackConfig
|
||||
|
||||
#
|
||||
# Имя журнала
|
||||
#
|
||||
LOGGER_NAME = RackConfig.env_str("LOGGER_NAME", "rack")
|
||||
|
||||
#
|
||||
# Уровень журналирования
|
||||
#
|
||||
LOG_LEVEL = RackConfig.env_str("LOG_LEVEL")
|
||||
if RackConfig.is_debug_mode():
|
||||
LOG_LEVEL = "DEBUG"
|
||||
else:
|
||||
if LOG_LEVEL == "DEBUG":
|
||||
LOG_LEVEL = "INFO"
|
||||
|
||||
#
|
||||
# Файлы журналов
|
||||
#
|
||||
LOG_FILE = RackConfig.env_str_as_file("LOG_FILE")
|
||||
DEBUG_LOG_FILE = RackConfig.env_str_as_file("DEBUG_LOG_FILE")
|
||||
|
||||
#
|
||||
# Настройка журнала
|
||||
#
|
||||
LOGGING = {
|
||||
"version": 1,
|
||||
"disable_existing_loggers": False,
|
||||
|
||||
"filters": {
|
||||
"strict_debug_only": {
|
||||
"()": LogDebugFilter,
|
||||
},
|
||||
},
|
||||
|
||||
"formatters": {
|
||||
"custom_format": {
|
||||
"format": "{asctime} [{levelname}] {message}",
|
||||
"datefmt": "%Y-%m-%d %H:%M:%S",
|
||||
"style": "{",
|
||||
},
|
||||
},
|
||||
|
||||
"handlers": {
|
||||
|
||||
#
|
||||
# Основной лог
|
||||
#
|
||||
"main_file": {
|
||||
"level": "INFO" if LOG_LEVEL == "DEBUG" else LOG_LEVEL,
|
||||
"class": "logging.handlers.RotatingFileHandler",
|
||||
"filename": LOG_FILE,
|
||||
"maxBytes": 1024 * 1024 * 10,
|
||||
"backupCount": 5,
|
||||
"formatter": "custom_format",
|
||||
"encoding": "utf-8",
|
||||
},
|
||||
|
||||
#
|
||||
# Отладка
|
||||
#
|
||||
"debug_file": {
|
||||
"level": "DEBUG",
|
||||
"class": "logging.handlers.RotatingFileHandler",
|
||||
"filename": DEBUG_LOG_FILE,
|
||||
"maxBytes": 1024 * 1024 * 10,
|
||||
"backupCount": 5,
|
||||
"formatter": "custom_format",
|
||||
"filters": [] if RackConfig.is_debug_mode() else ["strict_debug_only"],
|
||||
"encoding": "utf-8",
|
||||
},
|
||||
},
|
||||
|
||||
#
|
||||
# Журналы
|
||||
#
|
||||
"loggers": {
|
||||
|
||||
# Журнал системы
|
||||
LOGGER_NAME: {
|
||||
"handlers": ["main_file", "debug_file"],
|
||||
"level": "DEBUG",
|
||||
"propagate": False,
|
||||
},
|
||||
|
||||
# Стандартный журнал
|
||||
"django": {
|
||||
# "handlers": ["main_file", "debug_file"],
|
||||
# Отключаем полностью
|
||||
"'handlers": [],
|
||||
"level": "ERROR",
|
||||
"propagate": False,
|
||||
},
|
||||
|
||||
#
|
||||
# Отрезаем вообще всё, кроме реальных падений ядра (500 ошибок вне DRF)
|
||||
#
|
||||
"django.request": {
|
||||
"level": "ERROR",
|
||||
"propagate": True,
|
||||
},
|
||||
|
||||
#
|
||||
# Глушим системный спам сторонних библиотек
|
||||
#
|
||||
"urllib3": {"level": "WARNING"},
|
||||
"botocore": {"level": "WARNING"},
|
||||
"boto3": {"level": "WARNING"},
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user