11import json
22import os
33import typing
4+ import sys
45
56import requests
67from opentelemetry .sdk .trace .export import ReadableSpan , SpanExporter , SpanExportResult
@@ -49,18 +50,21 @@ class LangTraceExporter(SpanExporter):
4950
5051 api_key : str
5152 api_host : str
53+ disable_logging : bool
5254
5355 def __init__ (
5456 self ,
5557 api_host ,
5658 api_key : str = None ,
59+ disable_logging : bool = False ,
5760 ) -> None :
5861 self .api_key = api_key or os .environ .get ("LANGTRACE_API_KEY" )
5962 self .api_host = (
6063 f"{ LANGTRACE_REMOTE_URL } /api/trace"
6164 if api_host == LANGTRACE_REMOTE_URL
6265 else api_host
6366 )
67+ self .disable_logging = disable_logging
6468
6569 def export (self , spans : typing .Sequence [ReadableSpan ]) -> SpanExportResult :
6670 """
@@ -72,7 +76,7 @@ def export(self, spans: typing.Sequence[ReadableSpan]) -> SpanExportResult:
7276 Returns:
7377 The result of the export SUCCESS or FAILURE
7478 """
75- if not self .api_key :
79+ if not self .api_key and not self . disable_logging :
7680 print (Fore .RED )
7781 print (
7882 "Missing Langtrace API key, proceed to https://langtrace.ai to create one"
@@ -107,14 +111,15 @@ def export(self, spans: typing.Sequence[ReadableSpan]) -> SpanExportResult:
107111
108112 if not response .ok :
109113 raise RequestException (response .text )
110-
111- print (
112- Fore .GREEN + f"Exported { len (spans )} spans successfully." + Fore .RESET
113- )
114+ if not self . disable_logging :
115+ print (
116+ Fore .GREEN + f"Exported { len (spans )} spans successfully." + Fore .RESET
117+ )
114118 return SpanExportResult .SUCCESS
115119 except RequestException as err :
116- print (Fore .RED + "Failed to export spans." )
117- print (Fore .RED + f"Error: { err } " + Fore .RESET )
120+ if not self .disable_logging :
121+ print (Fore .RED + "Failed to export spans." )
122+ print (Fore .RED + f"Error: { err } " + Fore .RESET )
118123 return SpanExportResult .FAILURE
119124
120125 def shutdown (self ) -> None :
0 commit comments