-
Notifications
You must be signed in to change notification settings - Fork 1
/
quic_logger.py
25 lines (20 loc) · 793 Bytes
/
quic_logger.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import json
import os
from aioquic.quic.logger import QuicLogger, QuicLoggerTrace
class QuicDirectoryLogger(QuicLogger):
"""
Custom QUIC logger which writes one trace per file.
"""
def __init__(self, path: str) -> None:
if not os.path.isdir(path):
raise ValueError("QUIC log output directory '%s' does not exist" % path)
self.path = path
super().__init__()
def end_trace(self, trace: QuicLoggerTrace) -> None:
trace_dict = trace.to_dict()
trace_path = os.path.join(
self.path, trace_dict["common_fields"]["ODCID"] + ".qlog"
)
with open(trace_path, "w") as logger_fp:
json.dump({"qlog_version": "draft-01", "traces": [trace_dict]}, logger_fp)
self._traces.remove(trace)