Beispiel #1
0
    def add_fields(self, log_record, record, message_dict):
        super(CustomJsonFormatter, self).add_fields(log_record, record,
                                                    message_dict)

        if log_record.get(IS_STRUCTLOG_KEY) is True:
            del log_record[IS_STRUCTLOG_KEY]
        else:
            # Applying contextvars to non-structlog events
            contextvars = merge_contextvars(None, None, {})
            log_record.update(contextvars)

        timestamp = datetime.fromtimestamp(record.created, tz=pytz.utc)
        _add_record(log_record, "timestamp", timestamp.isoformat())
        _add_record(
            log_record,
            "timestamps",
            {
                "epoch":
                record.created,
                "utc":
                timestamp.isoformat(),
                "montreal":
                timestamp.astimezone(
                    pytz.timezone("America/Montreal")).isoformat(),
            },
        )
        _add_record(log_record, "logger", record.name)
        _add_record(log_record, "level", record.levelname.lower())
        _add_record(log_record, "lineno", record.lineno)
        _add_record(log_record, "pathname", record.pathname)
        _add_record(log_record, "threadName", record.threadName)
        _add_record(log_record, "processName", record.processName)
Beispiel #2
0
        async def coro2():
            bind_contextvars(a=2)

            await coro1_bind.wait()
            coro2_bind.set()

            return merge_contextvars(None, None, {"b": 2})
Beispiel #3
0
 async def coro():
     bind_contextvars(a=1)
     clear_contextvars()
     return merge_contextvars(None, None, {"b": 2})
Beispiel #4
0
 async def coro():
     bind_contextvars(a=1)
     return merge_contextvars(None, None, {"a": 111, "b": 2})
Beispiel #5
0
 async def coro():
     return merge_contextvars(None, None, {"b": 2})
Beispiel #6
0
 async def nested_coro():
     bind_contextvars(c=3)
     return merge_contextvars(None, None, {"b": 2})
Beispiel #7
0
 async def coro():
     bind_contextvars(a=1, c=3)
     bind_contextvars(c=333, d=4)
     return merge_contextvars(None, None, {"b": 2})
Beispiel #8
0
        async def coro():
            # Since unbinding means "setting to Ellipsis", we have to make
            # some effort to ensure that the ContextVar never existed.
            unbind_contextvars("a" + secrets.token_hex())

            return merge_contextvars(None, None, {"b": 2})
Beispiel #9
0
 async def coro():
     bind_contextvars(a=1)
     unbind_contextvars("a")
     return merge_contextvars(None, None, {"b": 2})
Beispiel #10
0
 async def coro():
     clear_contextvars()
     return merge_contextvars(None, None, {})
Beispiel #11
0
 async def coro():
     bind_contextvars(a=1)
     await event_loop.create_task(nested_coro())
     return merge_contextvars(None, None, {"b": 2})
Beispiel #12
0
 def __enter__(self):
     self._existing_vars = contextvars.merge_contextvars(
         logger=None, method_name=None, event_dict={}
     )
     contextvars.bind_contextvars(**self._context)
     return self