124 lines
3.2 KiB
Python
124 lines
3.2 KiB
Python
# DRF Rack
|
|
# Библиотека классов расширений для Django REST Framework
|
|
#
|
|
# Автор: Николай В. Анохин <n.anokhin@xeaf.net>
|
|
# Все права защищены. Лицензия: MIT
|
|
|
|
"""
|
|
Параметры конфигурации системы журналирования
|
|
"""
|
|
|
|
from net.xeaf.rack.utils.settings import Environment
|
|
from net.xeaf.rack.utils.settings import SettingUtils
|
|
from net.xeaf.rack.utils.settings.logger import LogDebugFilter
|
|
|
|
#
|
|
# Имя журнала
|
|
#
|
|
LOGGER_NAME = Environment.get_str("LOGGER_NAME", "rack")
|
|
|
|
#
|
|
# Уровень журналирования
|
|
#
|
|
LOG_LEVEL = Environment.get_str("LOG_LEVEL")
|
|
if SettingUtils.is_debug_mode():
|
|
LOG_LEVEL = "DEBUG"
|
|
else:
|
|
if LOG_LEVEL == "DEBUG":
|
|
LOG_LEVEL = "INFO"
|
|
|
|
#
|
|
# Файлы журналов
|
|
#
|
|
LOG_FILE = Environment.get_str_as_file("LOG_FILE")
|
|
DEBUG_LOG_FILE = Environment.get_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 SettingUtils.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"},
|
|
},
|
|
}
|