diff options
| author | Saumit <justsaumit@protonmail.com> | 2025-09-27 02:14:26 +0530 |
|---|---|---|
| committer | Saumit <justsaumit@protonmail.com> | 2025-09-27 02:14:26 +0530 |
| commit | 82e03978b89938219958032efb1448cc76baa181 (patch) | |
| tree | 626f3e54d52ecd49be0ed3bee30abacc0453d081 /src/recommendation/logger.py | |
Initial snapshot - OpenTelemetry demo 2.1.3 -f
Diffstat (limited to 'src/recommendation/logger.py')
| -rw-r--r-- | src/recommendation/logger.py | 28 |
1 files changed, 28 insertions, 0 deletions
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 |
