diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index cbf7baae9900599b31717224320667cd078e2eaf..542508a839105541cd8921af698aee9468453668 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -9,6 +9,11 @@ and this project adheres to `Semantic Versioning`_.
 Unreleased
 ----------
 
+Fixed
+~~~~~
+
+* Celery's logging did not honour Django's logging level
+
 `2.10.1`_ - 2022-07-24
 ----------------------
 
diff --git a/aleksis/core/celery.py b/aleksis/core/celery.py
index ab78cfb080ad1abc79f92e873641ef36c22432c9..492f7e79c9715a3f5477623cb5a925e4cdc4a850 100644
--- a/aleksis/core/celery.py
+++ b/aleksis/core/celery.py
@@ -1,10 +1,11 @@
+import logging
 import os
 from traceback import format_exception
 
 from django.conf import settings
 
 from celery import Celery
-from celery.signals import task_failure
+from celery.signals import setup_logging, task_failure
 
 from .util.core_helpers import get_site_preferences
 from .util.email import send_email
@@ -35,3 +36,9 @@ def task_failure_notifier(
             "traceback": "".join(format_exception(type(exception), exception, traceback)),
         },
     )
+
+
+@setup_logging.connect
+def on_setup_logging(*args, **kwargs):
+    """Load Django's logging configuration when running inside Celery."""
+    logging.config.dictConfig(settings.LOGGING)
diff --git a/aleksis/core/settings.py b/aleksis/core/settings.py
index e52538c37dfd7f27b256a836201dd2865d61a0a2..6ff73399849d267eeca7f37057d46ac5c6b0c843 100644
--- a/aleksis/core/settings.py
+++ b/aleksis/core/settings.py
@@ -901,6 +901,12 @@ if not _settings.get("logging.disallowed_host", False):
         "handlers": ["null"],
         "propagate": False,
     }
+# Configure logging explicitly for Celery
+LOGGING["loggers"]["celery"] = {
+    "handlers": ["console"],
+    "level": _settings.get("logging.level", "WARNING"),
+    "propagate": False,
+}
 
 # Rules and permissions