diff --git a/CHANGELOG.md b/CHANGELOG.md index 38637535..623cf972 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,10 @@ and this project adheres to - 🔒️(backend) enforce display name setting on rename API +### Changed + +- 🔇(backend) silence expected 401 warnings on /me + ## [1.31.0] - 2026-09-08 ### Added diff --git a/src/backend/core/logging_filters.py b/src/backend/core/logging_filters.py new file mode 100644 index 00000000..53c14fb9 --- /dev/null +++ b/src/backend/core/logging_filters.py @@ -0,0 +1,25 @@ +"""Logging filters for the core application.""" + +import logging + +from django.conf import settings + + +class SilenceExpected401(logging.Filter): + """Drop the expected 401 from anonymous hits on the /me endpoint. + + The frontend probes `/users/me/` to check authentication; a 401 for + anonymous users is normal, not a warning worth logging. + """ + + def filter(self, record): + """Return False for a 401 on a silenced path, True otherwise.""" + if getattr(record, "status_code", None) != 401: + return True + + request = getattr(record, "request", None) + path = getattr(request, "path", None) + if not path: + return True + + return path not in settings.LOGGING_SILENCED_401_PATHS diff --git a/src/backend/meet/settings.py b/src/backend/meet/settings.py index d434a554..a841f156 100755 --- a/src/backend/meet/settings.py +++ b/src/backend/meet/settings.py @@ -1110,6 +1110,12 @@ class Base(Configuration): environ_prefix=None, ) + LOGGING_SILENCED_401_PATHS = values.ListValue( + default=["/api/v1.0/users/me/"], + environ_name="LOGGING_SILENCED_401_PATHS", + environ_prefix=None, + ) + # Logging # We want to make it easy to log to console but by default we log production # to Sentry and don't want to log to console. @@ -1122,10 +1128,16 @@ class Base(Configuration): "style": "{", }, }, + "filters": { + "silence_expected_401": { + "()": "core.logging_filters.SilenceExpected401", + }, + }, "handlers": { "console": { "class": "logging.StreamHandler", "formatter": "simple", + "filters": ["silence_expected_401"], }, }, # Override root logger to send it to console