41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
import io
|
|
import logging
|
|
from types import SimpleNamespace
|
|
|
|
from deerflow.logging_config import TraceContextFilter, configure_logging
|
|
from deerflow.trace_context import request_trace_context
|
|
|
|
|
|
def test_trace_context_filter_injects_current_trace_id() -> None:
|
|
record = logging.LogRecord("deerflow.test", logging.INFO, __file__, 1, "hello", (), None)
|
|
|
|
with request_trace_context("trace-log-1"):
|
|
assert TraceContextFilter().filter(record) is True
|
|
|
|
assert record.trace_id == "trace-log-1"
|
|
|
|
|
|
def test_configure_logging_enhanced_text_includes_trace_id() -> None:
|
|
root = logging.getLogger()
|
|
old_handlers = root.handlers[:]
|
|
old_level = root.level
|
|
stream = io.StringIO()
|
|
handler = logging.StreamHandler(stream)
|
|
|
|
try:
|
|
root.handlers = [handler]
|
|
root.setLevel(logging.INFO)
|
|
config = SimpleNamespace(
|
|
log_level="info",
|
|
logging=SimpleNamespace(enhance=SimpleNamespace(enabled=True, format="text")),
|
|
)
|
|
configure_logging(config)
|
|
|
|
with request_trace_context("trace-log-2"):
|
|
logging.getLogger("deerflow.test").info("hello")
|
|
|
|
assert "[trace_id=trace-log-2]" in stream.getvalue()
|
|
finally:
|
|
root.handlers = old_handlers
|
|
root.setLevel(old_level)
|