From 67b6baba0367b37630e5a92c3a1ecd12129ec1dd Mon Sep 17 00:00:00 2001 From: Obinna Okafor Date: Mon, 19 Aug 2024 11:19:34 +0100 Subject: [PATCH 1/2] disable print statements if disable_logging is set to true --- .../extensions/langtrace_exporter.py | 19 ++++++++++++------- src/langtrace_python_sdk/langtrace.py | 7 ++++++- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/langtrace_python_sdk/extensions/langtrace_exporter.py b/src/langtrace_python_sdk/extensions/langtrace_exporter.py index 4c5eff5a..f871aa35 100644 --- a/src/langtrace_python_sdk/extensions/langtrace_exporter.py +++ b/src/langtrace_python_sdk/extensions/langtrace_exporter.py @@ -1,6 +1,7 @@ import json import os import typing +import sys import requests from opentelemetry.sdk.trace.export import ReadableSpan, SpanExporter, SpanExportResult @@ -49,11 +50,13 @@ class LangTraceExporter(SpanExporter): api_key: str api_host: str + disable_logging: bool def __init__( self, api_host, api_key: str = None, + disable_logging: bool = False, ) -> None: self.api_key = api_key or os.environ.get("LANGTRACE_API_KEY") self.api_host = ( @@ -61,6 +64,7 @@ def __init__( if api_host == LANGTRACE_REMOTE_URL else api_host ) + self.disable_logging = disable_logging def export(self, spans: typing.Sequence[ReadableSpan]) -> SpanExportResult: """ @@ -72,7 +76,7 @@ def export(self, spans: typing.Sequence[ReadableSpan]) -> SpanExportResult: Returns: The result of the export SUCCESS or FAILURE """ - if not self.api_key: + if not self.api_key and not self.disable_logging: print(Fore.RED) print( "Missing Langtrace API key, proceed to https://langtrace.ai to create one" @@ -107,14 +111,15 @@ def export(self, spans: typing.Sequence[ReadableSpan]) -> SpanExportResult: if not response.ok: raise RequestException(response.text) - - print( - Fore.GREEN + f"Exported {len(spans)} spans successfully." + Fore.RESET - ) + if not self.disable_logging: + print( + Fore.GREEN + f"Exported {len(spans)} spans successfully." + Fore.RESET + ) return SpanExportResult.SUCCESS except RequestException as err: - print(Fore.RED + "Failed to export spans.") - print(Fore.RED + f"Error: {err}" + Fore.RESET) + if not self.disable_logging: + print(Fore.RED + "Failed to export spans.") + print(Fore.RED + f"Error: {err}" + Fore.RESET) return SpanExportResult.FAILURE def shutdown(self) -> None: diff --git a/src/langtrace_python_sdk/langtrace.py b/src/langtrace_python_sdk/langtrace.py index 9be99de1..f14cf84a 100644 --- a/src/langtrace_python_sdk/langtrace.py +++ b/src/langtrace_python_sdk/langtrace.py @@ -72,7 +72,10 @@ def init( disable_instrumentations: Optional[DisableInstrumentations] = None, disable_tracing_for_functions: Optional[InstrumentationMethods] = None, service_name: Optional[str] = None, + disable_logging = False ): + if disable_logging: + sys.stdout = open(os.devnull, "w") host = ( os.environ.get("LANGTRACE_API_HOST", None) or api_host or LANGTRACE_REMOTE_URL @@ -90,7 +93,7 @@ def init( provider = TracerProvider(resource=resource, sampler=sampler) remote_write_exporter = ( - LangTraceExporter(api_key=api_key, api_host=host) + LangTraceExporter(api_key=api_key, api_host=host, disable_logging=disable_logging) if custom_remote_exporter is None else custom_remote_exporter ) @@ -146,6 +149,8 @@ def init( print(Fore.BLUE + "Exporting spans to Langtrace cloud.." + Fore.RESET) provider.add_span_processor(batch_processor_remote) + sys.stdout = sys.__stdout__ + def init_instrumentations( disable_instrumentations: DisableInstrumentations, all_instrumentations: dict From 882ec7e17a7747c9f19fd3b525a370f0b327b176 Mon Sep 17 00:00:00 2001 From: Obinna Okafor Date: Mon, 19 Aug 2024 20:03:01 +0100 Subject: [PATCH 2/2] update version --- src/langtrace_python_sdk/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/langtrace_python_sdk/version.py b/src/langtrace_python_sdk/version.py index 20868fd2..a6d2e21b 100644 --- a/src/langtrace_python_sdk/version.py +++ b/src/langtrace_python_sdk/version.py @@ -1 +1 @@ -__version__ = "2.2.21" +__version__ = "2.2.22"