diff --git a/dynamicweb/settings/base.py b/dynamicweb/settings/base.py index 7d62ceb5..d0d0fd6c 100644 --- a/dynamicweb/settings/base.py +++ b/dynamicweb/settings/base.py @@ -11,6 +11,7 @@ import os # dotenv import dotenv from django.utils.translation import ugettext_lazy as _ +from utils.log_filters import skip_suspicious_operations logger = logging.getLogger(__name__) @@ -691,11 +692,31 @@ if ENABLE_LOGGING: } } handlers_dict.update(custom_handler_item) + + # Skip emails for Disallowed Hosts errors + # https://redmine.ungleich.ch/issues/6060 + + skip_suspicious_operations_handler = { + 'mail_admins': { + 'level': 'ERROR', + 'filters': ['skip_suspicious_operations'], + 'include_html' : True, + } + } + + handlers_dict.update(skip_suspicious_operations_handler) + LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': handlers_dict, - 'loggers': loggers_dict + 'loggers': loggers_dict, + 'filters': { + 'skip_suspicious_operations': { + '()': 'django.utils.log.CallbackFilter', + 'callback': skip_suspicious_operations, + } + } } TEST_MANAGE_SSH_KEY_PUBKEY = env('TEST_MANAGE_SSH_KEY_PUBKEY') diff --git a/utils/log_filters.py b/utils/log_filters.py new file mode 100644 index 00000000..f17e497c --- /dev/null +++ b/utils/log_filters.py @@ -0,0 +1,4 @@ +def skip_suspicious_operations(record): + if record.name == 'django.security.DisallowedHost': + return False + return True \ No newline at end of file