From 1f4fc6e8487534b705693a3f14f04e59101a00dd Mon Sep 17 00:00:00 2001 From: Dante Soares Date: Thu, 28 Apr 2022 11:23:40 -0500 Subject: [PATCH] Filter /ping requests from Django logs --- healthcheck/filter.py | 9 +++++++++ openstax/settings/base.py | 12 ++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 healthcheck/filter.py diff --git a/healthcheck/filter.py b/healthcheck/filter.py new file mode 100644 index 000000000..7f3a7d32e --- /dev/null +++ b/healthcheck/filter.py @@ -0,0 +1,9 @@ +from logging import Filter + +class HealthCheckFilter(Filter): + def filter(self, record): + # Should return True for all requests except successful healthcheck requests + return record.status_code != 204 or not ( + record.args[0].startswith('GET /ping ') or + record.args[0].startswith('GET /ping/') + ) diff --git a/openstax/settings/base.py b/openstax/settings/base.py index 786f688a9..55b4c1f40 100644 --- a/openstax/settings/base.py +++ b/openstax/settings/base.py @@ -292,6 +292,11 @@ logging.config.dictConfig({ 'version': 1, 'disable_existing_loggers': False, + 'filters': { + 'healthcheck_filter': { + '()': 'healthcheck.filter.HealthCheckFilter' + }, + }, 'formatters': { 'default': { # exact format is not important, this is the minimum information @@ -300,7 +305,7 @@ 'django.server': DEFAULT_LOGGING['formatters']['django.server'], }, 'handlers': { - #disable logs set with null handler + # disable logs set with null handler 'null': { 'class': 'logging.NullHandler', }, @@ -309,7 +314,10 @@ 'class': 'logging.StreamHandler', 'formatter': 'default', }, - 'django.server': DEFAULT_LOGGING['handlers']['django.server'], + 'django.server': { + **DEFAULT_LOGGING['handlers']['django.server'], + 'filters': ['healthcheck_filter'] + }, }, 'loggers': { # default for all undefined Python modules