From 82e03978b89938219958032efb1448cc76baa181 Mon Sep 17 00:00:00 2001 From: Saumit Date: Sat, 27 Sep 2025 02:14:26 +0530 Subject: Initial snapshot - OpenTelemetry demo 2.1.3 -f --- src/recommendation/logger.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/recommendation/logger.py (limited to 'src/recommendation/logger.py') diff --git a/src/recommendation/logger.py b/src/recommendation/logger.py new file mode 100644 index 0000000..0569665 --- /dev/null +++ b/src/recommendation/logger.py @@ -0,0 +1,28 @@ +#!/usr/bin/python + +# Copyright The OpenTelemetry Authors +# SPDX-License-Identifier: Apache-2.0 + +import logging +import sys +from pythonjsonlogger import jsonlogger +from opentelemetry import trace + + +class CustomJsonFormatter(jsonlogger.JsonFormatter): + def add_fields(self, log_record, record, message_dict): + super(CustomJsonFormatter, self).add_fields(log_record, record, message_dict) + if not log_record.get('otelTraceID'): + log_record['otelTraceID'] = trace.format_trace_id(trace.get_current_span().get_span_context().trace_id) + if not log_record.get('otelSpanID'): + log_record['otelSpanID'] = trace.format_span_id(trace.get_current_span().get_span_context().span_id) + +def getJSONLogger(name): + logger = logging.getLogger(name) + handler = logging.StreamHandler(sys.stdout) + formatter = CustomJsonFormatter('%(asctime)s %(levelname)s [%(name)s] [%(filename)s:%(lineno)d] [trace_id=%(otelTraceID)s span_id=%(otelSpanID)s] - %(message)s') + handler.setFormatter(formatter) + logger.addHandler(handler) + logger.setLevel(logging.INFO) + logger.propagate = False + return logger -- cgit v1.2.3