@@ -11,6 +11,7 @@ import (
1111
1212 expirable2 "github.com/hashicorp/golang-lru/v2/expirable"
1313 "go.uber.org/zap"
14+ "go.uber.org/zap/zapcore"
1415
1516 "go.opentelemetry.io/collector/component"
1617 "go.opentelemetry.io/collector/config/configgrpc"
@@ -216,7 +217,7 @@ func getTracesExporter(ctx context.Context, cfg otelcfg.TracesConfig, im imetric
216217 Headers : convertHeaders (opts .Headers ),
217218 }
218219 slog .Debug ("getTracesExporter: confighttp.ClientConfig created" , "endpoint" , config .ClientConfig .Endpoint )
219- set := getTraceSettings (factory .Type ())
220+ set := getTraceSettings (factory .Type (), cfg . SDKLogLevel )
220221 exp , err := factory .CreateTraces (ctx , set , config )
221222 if err != nil {
222223 slog .Error ("can't create OTLP HTTP traces exporter" , "error" , err )
@@ -272,7 +273,7 @@ func getTracesExporter(ctx context.Context, cfg otelcfg.TracesConfig, im imetric
272273 },
273274 Headers : convertHeaders (opts .Headers ),
274275 }
275- set := getTraceSettings (factory .Type ())
276+ set := getTraceSettings (factory .Type (), cfg . SDKLogLevel )
276277 exp , err := factory .CreateTraces (ctx , set , config )
277278 if err != nil {
278279 return nil , err
@@ -286,11 +287,34 @@ func getTracesExporter(ctx context.Context, cfg otelcfg.TracesConfig, im imetric
286287 }
287288}
288289
289- func getTraceSettings (dataTypeMetrics component.Type ) exporter.Settings {
290+ func createZapLoggerDev (sdkLogLevel string ) * zap.Logger {
291+ if sdkLogLevel == "" {
292+ return zap .NewNop ()
293+ }
294+
295+ var level zapcore.Level
296+ if err := level .UnmarshalText ([]byte (sdkLogLevel )); err != nil {
297+ slog .Error ("unsupported trace exporter logger level" , "error" , err , "level" , sdkLogLevel )
298+ return zap .NewNop ()
299+ }
300+
301+ config := zap .NewDevelopmentConfig ()
302+ config .Level = zap .NewAtomicLevelAt (level )
303+
304+ logger , err := config .Build ()
305+ if err != nil {
306+ slog .Error ("unable to create trace exporter logger" , "error" , err )
307+ return zap .NewNop ()
308+ }
309+
310+ return logger
311+ }
312+
313+ func getTraceSettings (dataTypeMetrics component.Type , sdkLogLevel string ) exporter.Settings {
290314 traceProvider := tracenoop .NewTracerProvider ()
291315 meterProvider := metric .NewMeterProvider ()
292316 telemetrySettings := component.TelemetrySettings {
293- Logger : zap . NewNop ( ),
317+ Logger : createZapLoggerDev ( sdkLogLevel ),
294318 MeterProvider : meterProvider ,
295319 TracerProvider : traceProvider ,
296320 Resource : pcommon .NewResource (),
0 commit comments