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 80411e1a4..478241597 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