diff --git a/lifecycle/wait_for_db.py b/lifecycle/wait_for_db.py index 8898920e6..cc6108c4c 100755 --- a/lifecycle/wait_for_db.py +++ b/lifecycle/wait_for_db.py @@ -3,7 +3,7 @@ import passbook. This is done by the dockerfile.""" from json import dumps from sys import stderr -from time import sleep +from time import sleep, time from psycopg2 import OperationalError, connect from redis import Redis @@ -19,6 +19,7 @@ def j_print(event: str, log_level: str = "info", **kwargs): "event": event, "level": log_level, "logger": __name__, + "timestamp": time(), } data.update(**kwargs) print(dumps(data), file=stderr) diff --git a/passbook/lib/config.py b/passbook/lib/config.py index c5569b6a6..a4fc94887 100644 --- a/passbook/lib/config.py +++ b/passbook/lib/config.py @@ -4,6 +4,7 @@ from collections.abc import Mapping from contextlib import contextmanager from glob import glob from json import dumps +from time import time from typing import Any, Dict from urllib.parse import urlparse @@ -60,7 +61,12 @@ class ConfigLoader: def _log(self, level: str, message: str, **kwargs): """Custom Log method, we want to ensure ConfigLoader always logs JSON even when 'structlog' or 'logging' hasn't been configured yet.""" - output = {"event": message, "level": level, "logger": self.__class__.__module__} + output = { + "event": message, + "level": level, + "logger": self.__class__.__module__, + "timestamp": time(), + } output.update(kwargs) print(dumps(output)) diff --git a/passbook/root/settings.py b/passbook/root/settings.py index c3d7c5547..d3035d5a7 100644 --- a/passbook/root/settings.py +++ b/passbook/root/settings.py @@ -14,6 +14,7 @@ import importlib import os import sys from json import dumps +from time import time import structlog from celery.schedules import crontab @@ -36,6 +37,7 @@ def j_print(event: str, log_level: str = "info", **kwargs): "event": event, "level": log_level, "logger": __name__, + "timestamp": time(), } data.update(**kwargs) print(dumps(data), file=sys.stderr)