diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 0a2071696858f84960a6c7c318e2d2c816bc6b93..c9ae649958669230fbe2d46ae48d76774120192c 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -15,6 +15,11 @@ Added
 * OpenID connect scope and accompanying claim `groups`
 * Support config files in JSON format
 
+Changed
+~~~~~~~
+
+* Do not log or e-mail ALLOWED_HOSTS violations
+
 Fixed
 ~~~~~
 
diff --git a/aleksis/core/settings.py b/aleksis/core/settings.py
index 442d7b45f6d9f111a7a3c81d1b6edf3410ee185d..a41b1913c9ea41bef202897c3555722e14605516 100644
--- a/aleksis/core/settings.py
+++ b/aleksis/core/settings.py
@@ -781,11 +781,21 @@ BLEACH_STRIP_COMMENTS = True
 LOGGING = {
     "version": 1,
     "disable_existing_loggers": False,
-    "handlers": {"console": {"class": "logging.StreamHandler", "formatter": "verbose"},},
+    "handlers": {
+        "console": {"class": "logging.StreamHandler", "formatter": "verbose"},
+        "null": {"class": "logging.NullHandler"},
+    },
     "formatters": {"verbose": {"format": "%(levelname)s %(asctime)s %(module)s: %(message)s"}},
     "root": {"handlers": ["console"], "level": _settings.get("logging.level", "WARNING"),},
+    "loggers": {},
 }
 
+if not _settings.get("logging.disallowed_host", False):
+    LOGGING["loggers"]["django.security.DisallowedHost"] = {
+        "handlers": ["null"],
+        "propagate": False,
+    }
+
 # Rules and permissions
 
 GUARDIAN_RAISE_403 = True