From 3183a8641c729af72d88144422d0e7430bf47f21 Mon Sep 17 00:00:00 2001 From: Victor Seva Date: Tue, 11 Oct 2022 13:16:42 +0200 Subject: [PATCH] MT#33006 logging: add rich package It will allow richer output on dev https://www.structlog.org/en/stable/development.html * call structlog.configure as last step in env settings. We are changing LOGGING there Change-Id: I2fc7bed3561062e5e6ead3d62dc009f815856b2a --- repoapi/settings/common.py | 24 ------------------------ repoapi/settings/dev.py | 24 ++++++++++++++++++++++++ repoapi/settings/prod.py | 25 +++++++++++++++++++++++++ requirements/dev.txt | 1 + t/Dockerfile | 2 +- 5 files changed, 51 insertions(+), 25 deletions(-) diff --git a/repoapi/settings/common.py b/repoapi/settings/common.py index 2df9b2c..bb1fd4b 100644 --- a/repoapi/settings/common.py +++ b/repoapi/settings/common.py @@ -161,30 +161,6 @@ LOGGING = { }, } -structlog.configure( - processors=[ - structlog.contextvars.merge_contextvars, - structlog.stdlib.filter_by_level, - structlog.stdlib.add_logger_name, - structlog.stdlib.PositionalArgumentsFormatter(), - structlog.processors.StackInfoRenderer(), - structlog.processors.format_exc_info, - structlog.processors.UnicodeDecoder(), - structlog.processors.CallsiteParameterAdder( - { - structlog.processors.CallsiteParameter.FILENAME, - structlog.processors.CallsiteParameter.FUNC_NAME, - structlog.processors.CallsiteParameter.LINENO, - } - ), - structlog.processors.ExceptionPrettyPrinter(), - structlog.stdlib.ProcessorFormatter.wrap_for_formatter, - ], - logger_factory=structlog.stdlib.LoggerFactory(), - wrapper_class=structlog.stdlib.BoundLogger, - cache_logger_on_first_use=True, -) - JENKINS_TOKEN = "sipwise_jenkins_ci" CELERY_TASK_SERIALIZER = "json" diff --git a/repoapi/settings/dev.py b/repoapi/settings/dev.py index 8f8a233..fd8e7e0 100644 --- a/repoapi/settings/dev.py +++ b/repoapi/settings/dev.py @@ -16,6 +16,8 @@ import os from socket import gethostbyname from socket import gethostname +import structlog + from .test import * # noqa # pylint: disable=W0401,W0614,C0413 @@ -38,3 +40,25 @@ ALLOWED_HOSTS = [ ] # or to manually override: # ALLOWED_HOSTS = ['172.17.0.3'] + +structlog.configure( + processors=[ + structlog.contextvars.merge_contextvars, + structlog.stdlib.filter_by_level, + structlog.stdlib.add_logger_name, + structlog.stdlib.PositionalArgumentsFormatter(), + structlog.processors.StackInfoRenderer(), + structlog.processors.UnicodeDecoder(), + structlog.processors.CallsiteParameterAdder( + { + structlog.processors.CallsiteParameter.FILENAME, + structlog.processors.CallsiteParameter.FUNC_NAME, + structlog.processors.CallsiteParameter.LINENO, + } + ), + structlog.stdlib.ProcessorFormatter.wrap_for_formatter, + ], + logger_factory=structlog.stdlib.LoggerFactory(), + wrapper_class=structlog.stdlib.BoundLogger, + cache_logger_on_first_use=True, +) diff --git a/repoapi/settings/prod.py b/repoapi/settings/prod.py index c45373a..36fd6f5 100644 --- a/repoapi/settings/prod.py +++ b/repoapi/settings/prod.py @@ -21,6 +21,7 @@ from pathlib import Path from urllib.parse import urlparse import ldap +import structlog from celery.schedules import crontab from django_auth_ldap.config import LDAPGroupQuery from django_auth_ldap.config import LDAPSearch @@ -168,3 +169,27 @@ JBI_ARTIFACT_JOBS = [ "release-tools-runner", ] JBI_ALLOWED_HOSTS = [urlparse(JENKINS_URL).netloc] + +structlog.configure( + processors=[ + structlog.contextvars.merge_contextvars, + structlog.stdlib.filter_by_level, + structlog.stdlib.add_logger_name, + structlog.stdlib.PositionalArgumentsFormatter(), + structlog.processors.StackInfoRenderer(), + structlog.processors.format_exc_info, + structlog.processors.UnicodeDecoder(), + structlog.processors.CallsiteParameterAdder( + { + structlog.processors.CallsiteParameter.FILENAME, + structlog.processors.CallsiteParameter.FUNC_NAME, + structlog.processors.CallsiteParameter.LINENO, + } + ), + structlog.processors.ExceptionPrettyPrinter(), + structlog.stdlib.ProcessorFormatter.wrap_for_formatter, + ], + logger_factory=structlog.stdlib.LoggerFactory(), + wrapper_class=structlog.stdlib.BoundLogger, + cache_logger_on_first_use=True, +) diff --git a/requirements/dev.txt b/requirements/dev.txt index e3717fe..f0e5450 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,3 +1,4 @@ -r test.txt +rich watchdog Werkzeug==2.0.0 diff --git a/t/Dockerfile b/t/Dockerfile index 5315082..4f2255f 100644 --- a/t/Dockerfile +++ b/t/Dockerfile @@ -5,7 +5,7 @@ FROM docker.mgm.sipwise.com/sipwise-bullseye:latest # is updated with the current date. It will force refresh of all # of the base images and things like `apt-get update` won't be using # old cached versions when the Dockerfile is built. -ENV REFRESHED_AT 2022-09-22 +ENV REFRESHED_AT 2022-10-11 RUN apt-get update && apt-get install --assume-yes python3 python3-dev \ python3-pytest python3-pytest-pep8 \