diff --git a/CHANGELOG.md b/CHANGELOG.md
index 71b9781efb7..99f62c59cb6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -18,6 +18,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
   
   If the provided environment variables are invalid (negative), the default values would be used.
 - Rename the `gc` runtime name to `go` (#2560)
+- Log the Exporters configuration in the TracerProviders message. (#2578)
 
 ### Changed
 
diff --git a/exporters/jaeger/jaeger.go b/exporters/jaeger/jaeger.go
index 22a5ed1afa8..d87b79621ef 100644
--- a/exporters/jaeger/jaeger.go
+++ b/exporters/jaeger/jaeger.go
@@ -123,6 +123,15 @@ func (e *Exporter) Shutdown(ctx context.Context) error {
 	return e.uploader.shutdown(ctx)
 }
 
+// MarshalLog is the marshaling function used by the logging system to represent this exporter.
+func (e *Exporter) MarshalLog() interface{} {
+	return struct {
+		Type string
+	}{
+		Type: "jaeger",
+	}
+}
+
 func spanToThrift(ss sdktrace.ReadOnlySpan) *gen.Span {
 	attr := ss.Attributes()
 	tags := make([]*gen.Tag, 0, len(attr))
diff --git a/exporters/otlp/otlptrace/exporter.go b/exporters/otlp/otlptrace/exporter.go
index 7e9bb6c47ae..c5ee6c098cc 100644
--- a/exporters/otlp/otlptrace/exporter.go
+++ b/exporters/otlp/otlptrace/exporter.go
@@ -100,3 +100,14 @@ func NewUnstarted(client Client) *Exporter {
 		client: client,
 	}
 }
+
+// MarshalLog is the marshaling function used by the logging system to represent this exporter.
+func (e *Exporter) MarshalLog() interface{} {
+	return struct {
+		Type   string
+		Client Client
+	}{
+		Type:   "otlptrace",
+		Client: e.client,
+	}
+}
diff --git a/exporters/otlp/otlptrace/otlptracegrpc/client.go b/exporters/otlp/otlptrace/otlptracegrpc/client.go
index d709ffa96e1..31ed8190b67 100644
--- a/exporters/otlp/otlptrace/otlptracegrpc/client.go
+++ b/exporters/otlp/otlptrace/otlptracegrpc/client.go
@@ -273,3 +273,14 @@ func throttleDelay(status *status.Status) time.Duration {
 	}
 	return 0
 }
+
+// MarshalLog is the marshaling function used by the logging system to represent this Client.
+func (c *client) MarshalLog() interface{} {
+	return struct {
+		Type     string
+		Endpoint string
+	}{
+		Type:     "otlphttpgrpc",
+		Endpoint: c.endpoint,
+	}
+}
diff --git a/exporters/otlp/otlptrace/otlptracehttp/client.go b/exporters/otlp/otlptrace/otlptracehttp/client.go
index 613b09284d0..9a1428b444c 100644
--- a/exporters/otlp/otlptrace/otlptracehttp/client.go
+++ b/exporters/otlp/otlptrace/otlptracehttp/client.go
@@ -222,6 +222,19 @@ func (d *client) newRequest(body []byte) (request, error) {
 	return req, nil
 }
 
+// MarshalLog is the marshaling function used by the logging system to represent this Client.
+func (d *client) MarshalLog() interface{} {
+	return struct {
+		Type     string
+		Endpoint string
+		Insecure bool
+	}{
+		Type:     "otlphttphttp",
+		Endpoint: d.cfg.Endpoint,
+		Insecure: d.cfg.Insecure,
+	}
+}
+
 // bodyReader returns a closure returning a new reader for buf.
 func bodyReader(buf []byte) func() io.ReadCloser {
 	return func() io.ReadCloser {
diff --git a/exporters/zipkin/zipkin.go b/exporters/zipkin/zipkin.go
index 5c7c20049d9..be14ff12879 100644
--- a/exporters/zipkin/zipkin.go
+++ b/exporters/zipkin/zipkin.go
@@ -180,3 +180,14 @@ func (e *Exporter) errf(format string, args ...interface{}) error {
 	e.logf(format, args...)
 	return fmt.Errorf(format, args...)
 }
+
+// MarshalLog is the marshaling function used by the logging system to represent this exporter.
+func (e *Exporter) MarshalLog() interface{} {
+	return struct {
+		Type string
+		URL  string
+	}{
+		Type: "zipkin",
+		URL:  e.url,
+	}
+}
diff --git a/sdk/trace/simple_span_processor.go b/sdk/trace/simple_span_processor.go
index d31d3c1caff..e8530a95932 100644
--- a/sdk/trace/simple_span_processor.go
+++ b/sdk/trace/simple_span_processor.go
@@ -116,7 +116,7 @@ func (ssp *simpleSpanProcessor) ForceFlush(context.Context) error {
 	return nil
 }
 
-// MarshalLog is the marshaling function used by the logging system to represent this exporter.
+// MarshalLog is the marshaling function used by the logging system to represent this Span Processor.
 func (ssp *simpleSpanProcessor) MarshalLog() interface{} {
 	return struct {
 		Type     string