diff --git a/OpenTelemetry.sln b/OpenTelemetry.sln
index e3961a830..c82c90d8c 100644
--- a/OpenTelemetry.sln
+++ b/OpenTelemetry.sln
@@ -212,8 +212,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "customizing-the-sdk", "docs
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenTelemetry.Tests.Stress", "test\OpenTelemetry.Tests.Stress\OpenTelemetry.Tests.Stress.csproj", "{2770158A-D220-414B-ABC6-179371323579}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs", "src\OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs\OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs.csproj", "{6E1A5FA3-E024-4972-9EDC-11E36C5A0D6F}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "source-generation", "docs\logs\source-generation\source-generation.csproj", "{1F6CC903-04C9-4E7C-B388-C215C467BFB9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "getting-started-prometheus-grafana", "docs\metrics\getting-started-prometheus-grafana\getting-started-prometheus-grafana.csproj", "{41B784AA-3301-4126-AF9F-1D59BD04B0BF}"
@@ -456,10 +454,6 @@ Global
{2770158A-D220-414B-ABC6-179371323579}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2770158A-D220-414B-ABC6-179371323579}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2770158A-D220-414B-ABC6-179371323579}.Release|Any CPU.Build.0 = Release|Any CPU
- {6E1A5FA3-E024-4972-9EDC-11E36C5A0D6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6E1A5FA3-E024-4972-9EDC-11E36C5A0D6F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6E1A5FA3-E024-4972-9EDC-11E36C5A0D6F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6E1A5FA3-E024-4972-9EDC-11E36C5A0D6F}.Release|Any CPU.Build.0 = Release|Any CPU
{1F6CC903-04C9-4E7C-B388-C215C467BFB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1F6CC903-04C9-4E7C-B388-C215C467BFB9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1F6CC903-04C9-4E7C-B388-C215C467BFB9}.Release|Any CPU.ActiveCfg = Release|Any CPU
diff --git a/examples/AspNetCore/Examples.AspNetCore.csproj b/examples/AspNetCore/Examples.AspNetCore.csproj
index 15bfde258..fe6b61f89 100644
--- a/examples/AspNetCore/Examples.AspNetCore.csproj
+++ b/examples/AspNetCore/Examples.AspNetCore.csproj
@@ -13,7 +13,6 @@
-
diff --git a/examples/Console/Examples.Console.csproj b/examples/Console/Examples.Console.csproj
index 032b1a722..02438fb88 100644
--- a/examples/Console/Examples.Console.csproj
+++ b/examples/Console/Examples.Console.csproj
@@ -37,6 +37,5 @@
-
diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/.publicApi/net462/PublicAPI.Shipped.txt b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/.publicApi/net462/PublicAPI.Shipped.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/.publicApi/net462/PublicAPI.Unshipped.txt b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/.publicApi/net462/PublicAPI.Unshipped.txt
deleted file mode 100644
index 07a63e572..000000000
--- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/.publicApi/net462/PublicAPI.Unshipped.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-OpenTelemetry.Logs.OtlpLogExporterHelperExtensions
-static OpenTelemetry.Logs.OtlpLogExporterHelperExtensions.AddOtlpExporter(this OpenTelemetry.Logs.OpenTelemetryLoggerOptions loggerOptions) -> OpenTelemetry.Logs.OpenTelemetryLoggerOptions
-static OpenTelemetry.Logs.OtlpLogExporterHelperExtensions.AddOtlpExporter(this OpenTelemetry.Logs.OpenTelemetryLoggerOptions loggerOptions, System.Action configure) -> OpenTelemetry.Logs.OpenTelemetryLoggerOptions
diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/.publicApi/netstandard2.0/PublicAPI.Shipped.txt b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/.publicApi/netstandard2.0/PublicAPI.Shipped.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt
deleted file mode 100644
index 07a63e572..000000000
--- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-OpenTelemetry.Logs.OtlpLogExporterHelperExtensions
-static OpenTelemetry.Logs.OtlpLogExporterHelperExtensions.AddOtlpExporter(this OpenTelemetry.Logs.OpenTelemetryLoggerOptions loggerOptions) -> OpenTelemetry.Logs.OpenTelemetryLoggerOptions
-static OpenTelemetry.Logs.OtlpLogExporterHelperExtensions.AddOtlpExporter(this OpenTelemetry.Logs.OpenTelemetryLoggerOptions loggerOptions, System.Action configure) -> OpenTelemetry.Logs.OpenTelemetryLoggerOptions
diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/.publicApi/netstandard2.1/PublicAPI.Shipped.txt b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/.publicApi/netstandard2.1/PublicAPI.Shipped.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/.publicApi/netstandard2.1/PublicAPI.Unshipped.txt b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/.publicApi/netstandard2.1/PublicAPI.Unshipped.txt
deleted file mode 100644
index 07a63e572..000000000
--- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/.publicApi/netstandard2.1/PublicAPI.Unshipped.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-OpenTelemetry.Logs.OtlpLogExporterHelperExtensions
-static OpenTelemetry.Logs.OtlpLogExporterHelperExtensions.AddOtlpExporter(this OpenTelemetry.Logs.OpenTelemetryLoggerOptions loggerOptions) -> OpenTelemetry.Logs.OpenTelemetryLoggerOptions
-static OpenTelemetry.Logs.OtlpLogExporterHelperExtensions.AddOtlpExporter(this OpenTelemetry.Logs.OpenTelemetryLoggerOptions loggerOptions, System.Action configure) -> OpenTelemetry.Logs.OpenTelemetryLoggerOptions
diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/AssemblyInfo.cs b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/AssemblyInfo.cs
deleted file mode 100644
index 8e90458d1..000000000
--- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/AssemblyInfo.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-//
-// Copyright The OpenTelemetry Authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-
-using System.Runtime.CompilerServices;
-
-#if SIGNED
-[assembly: InternalsVisibleTo("OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests, PublicKey=002400000480000094000000060200000024000052534131000400000100010051c1562a090fb0c9f391012a32198b5e5d9a60e9b80fa2d7b434c9e5ccb7259bd606e66f9660676afc6692b8cdc6793d190904551d2103b7b22fa636dcbb8208839785ba402ea08fc00c8f1500ccef28bbf599aa64ffb1e1d5dc1bf3420a3777badfe697856e9d52070a50c3ea5821c80bef17ca3acffa28f89dd413f096f898")]
-[assembly: InternalsVisibleTo("Benchmarks, PublicKey=002400000480000094000000060200000024000052534131000400000100010051c1562a090fb0c9f391012a32198b5e5d9a60e9b80fa2d7b434c9e5ccb7259bd606e66f9660676afc6692b8cdc6793d190904551d2103b7b22fa636dcbb8208839785ba402ea08fc00c8f1500ccef28bbf599aa64ffb1e1d5dc1bf3420a3777badfe697856e9d52070a50c3ea5821c80bef17ca3acffa28f89dd413f096f898")]
-
-// Used by Moq.
-[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]
-#else
-[assembly: InternalsVisibleTo("OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests")]
-[assembly: InternalsVisibleTo("Benchmarks")]
-
-// Used by Moq.
-[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
-#endif
diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/CHANGELOG.md b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/CHANGELOG.md
deleted file mode 100644
index 224fbb7f4..000000000
--- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/CHANGELOG.md
+++ /dev/null
@@ -1,109 +0,0 @@
-# Changelog
-
-## Unreleased
-
-## 1.5.0-rc.1
-
-Released 2023-May-25
-
-* The `OpenTelemetryLoggerOptions.AddOtlpExporter` extension no longer
- automatically sets `OpenTelemetryLoggerOptions.ParseStateValues` to `true`.
- The OpenTelemetry SDK now automatically sets `Attributes` (aka `StateValues`)
- for the common cases where `ParseStateValues` was previously required.
- `ParseStateValues` can be set to `true` manually by users to enable parsing of
- custom states which do not implement `IReadOnlyList` / `IEnumerable`
- interfaces.
- ([#4334](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4334))
-
-* Updated to use the new `LogRecord.Attributes` field as `LogRecord.StateValues`
- is now marked obsolete. There is no impact to transmitted data (`StateValues`
- and `Attributes` are equivalent).
- ([#4334](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4334))
-
-* Fixed issue where the
- [observed time](https://github.com/open-telemetry/opentelemetry-proto/blob/395c8422fe90080314c7d9b4114d701a0c049e1f/opentelemetry/proto/logs/v1/logs.proto#L138)
- field of the OTLP log record was not set. It is now correctly set to equal
- the
- [time](https://github.com/open-telemetry/opentelemetry-proto/blob/395c8422fe90080314c7d9b4114d701a0c049e1f/opentelemetry/proto/logs/v1/logs.proto#L121)
- field.
- ([#4444](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4444))
-
-## 1.5.0-alpha.2
-
-Released 2023-Mar-31
-
-## 1.5.0-alpha.1
-
-Released 2023-Mar-07
-
-## 1.4.0-rc.4
-
-Released 2023-Feb-10
-
-## 1.4.0-rc.3
-
-Released 2023-Feb-01
-
-## 1.4.0-rc.2
-
-Released 2023-Jan-09
-
-## 1.4.0-rc.1
-
-Released 2022-Dec-12
-
-## 1.4.0-beta.3
-
-Released 2022-Nov-07
-
-## 1.4.0-beta.2
-
-Released 2022-Oct-17
-
-## 1.4.0-beta.1
-
-Released 2022-Sep-29
-
-* `OtlpExporterOptions` can now be bound to `IConfiguation` and
- `HttpClientFactory` may be used to manage the `HttpClient` instance used when
- `HttpProtobuf` is configured
- ([#3640](https://github.com/open-telemetry/opentelemetry-dotnet/pull/3640))
-
-## 1.4.0-alpha.2
-
-Released 2022-Aug-18
-
-## 1.4.0-alpha.1
-
-Released 2022-Aug-02
-
-## 1.3.0-rc.2
-
-Released 2022-June-1
-
-## 1.0.0-rc9.3
-
-Released 2022-Apr-15
-
-* Removes .NET Framework 4.6.1. The minimum .NET Framework
- version supported is .NET 4.6.2. ([#3190](https://github.com/open-telemetry/opentelemetry-dotnet/issues/3190))
-
-## 1.0.0-rc9.2
-
-Released 2022-Apr-12
-
-## 1.0.0-rc9.1
-
-Released 2022-Mar-30
-
-## 1.0.0-rc10 (broken. use 1.0.0-rc9.1 and newer)
-
-Released 2022-Mar-04
-
-## 1.0.0-rc9
-
-Released 2022-Feb-02
-
-## 1.0.0-rc8
-
-Released 2021-Oct-08
diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs.csproj b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs.csproj
deleted file mode 100644
index 01ea7a3ad..000000000
--- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs.csproj
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
- netstandard2.1;netstandard2.0;net462
- OpenTelemetry protocol exporter for OpenTelemetry .NET
- $(PackageTags);OTLP
- core-
-
-
- disable
-
-
-
-
- false
-
-
-
-
-
-
-
diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/OtlpLogExporterHelperExtensions.cs b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/OtlpLogExporterHelperExtensions.cs
deleted file mode 100644
index b57ed1f8c..000000000
--- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/OtlpLogExporterHelperExtensions.cs
+++ /dev/null
@@ -1,82 +0,0 @@
-//
-// Copyright The OpenTelemetry Authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-
-using System.Diagnostics;
-using OpenTelemetry.Exporter;
-
-namespace OpenTelemetry.Logs
-{
- ///
- /// Extension methods to simplify registering of the OpenTelemetry Protocol (OTLP) exporter.
- ///
- public static class OtlpLogExporterHelperExtensions
- {
- ///
- /// Adds OTLP Exporter as a configuration to the OpenTelemetry ILoggingBuilder.
- ///
- ///
- /// options to use.
- /// The instance of to chain the calls.
- public static OpenTelemetryLoggerOptions AddOtlpExporter(this OpenTelemetryLoggerOptions loggerOptions)
- => AddOtlpExporterInternal(loggerOptions, configure: null);
-
- ///
- /// Adds OTLP Exporter as a configuration to the OpenTelemetry ILoggingBuilder.
- ///
- /// options to use.
- /// Callback action for configuring .
- /// The instance of to chain the calls.
- public static OpenTelemetryLoggerOptions AddOtlpExporter(
- this OpenTelemetryLoggerOptions loggerOptions,
- Action configure)
- => AddOtlpExporterInternal(loggerOptions, configure);
-
- private static OpenTelemetryLoggerOptions AddOtlpExporterInternal(
- OpenTelemetryLoggerOptions loggerOptions,
- Action configure)
- {
- var exporterOptions = new OtlpExporterOptions();
-
- // TODO: We are using span/activity batch environment variable keys
- // here when we should be using the ones for logs.
- var defaultBatchOptions = exporterOptions.BatchExportProcessorOptions;
-
- Debug.Assert(defaultBatchOptions != null, "defaultBatchOptions was null");
-
- configure?.Invoke(exporterOptions);
-
- var otlpExporter = new OtlpLogExporter(exporterOptions);
-
- if (exporterOptions.ExportProcessorType == ExportProcessorType.Simple)
- {
- loggerOptions.AddProcessor(new SimpleLogRecordExportProcessor(otlpExporter));
- }
- else
- {
- var batchOptions = exporterOptions.BatchExportProcessorOptions ?? defaultBatchOptions;
-
- loggerOptions.AddProcessor(new BatchLogRecordExportProcessor(
- otlpExporter,
- batchOptions.MaxQueueSize,
- batchOptions.ScheduledDelayMilliseconds,
- batchOptions.ExporterTimeoutMilliseconds,
- batchOptions.MaxExportBatchSize));
- }
-
- return loggerOptions;
- }
- }
-}
diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/README.md b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/README.md
deleted file mode 100644
index 9c2c0a286..000000000
--- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# OTLP Logs Exporter for OpenTelemetry .NET
-
-[](https://www.nuget.org/packages/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs)
-[](https://www.nuget.org/packages/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs)
-
-[The OTLP (OpenTelemetry Protocol) exporter](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md)
-implementation for logs.
-
-## Prerequisite
-
-* [Get OpenTelemetry Collector](https://opentelemetry.io/docs/collector/)
diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/.publicApi/net462/PublicAPI.Unshipped.txt b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/.publicApi/net462/PublicAPI.Unshipped.txt
index e69de29bb..e3204a2b2 100644
--- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/.publicApi/net462/PublicAPI.Unshipped.txt
+++ b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/.publicApi/net462/PublicAPI.Unshipped.txt
@@ -0,0 +1,3 @@
+OpenTelemetry.Logs.OtlpLogExporterHelperExtensions
+static OpenTelemetry.Logs.OtlpLogExporterHelperExtensions.AddOtlpExporter(this OpenTelemetry.Logs.OpenTelemetryLoggerOptions loggerOptions) -> OpenTelemetry.Logs.OpenTelemetryLoggerOptions
+static OpenTelemetry.Logs.OtlpLogExporterHelperExtensions.AddOtlpExporter(this OpenTelemetry.Logs.OpenTelemetryLoggerOptions loggerOptions, System.Action configure) -> OpenTelemetry.Logs.OpenTelemetryLoggerOptions
\ No newline at end of file
diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/.publicApi/net6.0/PublicAPI.Unshipped.txt b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/.publicApi/net6.0/PublicAPI.Unshipped.txt
index e69de29bb..e3204a2b2 100644
--- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/.publicApi/net6.0/PublicAPI.Unshipped.txt
+++ b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/.publicApi/net6.0/PublicAPI.Unshipped.txt
@@ -0,0 +1,3 @@
+OpenTelemetry.Logs.OtlpLogExporterHelperExtensions
+static OpenTelemetry.Logs.OtlpLogExporterHelperExtensions.AddOtlpExporter(this OpenTelemetry.Logs.OpenTelemetryLoggerOptions loggerOptions) -> OpenTelemetry.Logs.OpenTelemetryLoggerOptions
+static OpenTelemetry.Logs.OtlpLogExporterHelperExtensions.AddOtlpExporter(this OpenTelemetry.Logs.OpenTelemetryLoggerOptions loggerOptions, System.Action configure) -> OpenTelemetry.Logs.OpenTelemetryLoggerOptions
\ No newline at end of file
diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt
index e69de29bb..e3204a2b2 100644
--- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt
+++ b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt
@@ -0,0 +1,3 @@
+OpenTelemetry.Logs.OtlpLogExporterHelperExtensions
+static OpenTelemetry.Logs.OtlpLogExporterHelperExtensions.AddOtlpExporter(this OpenTelemetry.Logs.OpenTelemetryLoggerOptions loggerOptions) -> OpenTelemetry.Logs.OpenTelemetryLoggerOptions
+static OpenTelemetry.Logs.OtlpLogExporterHelperExtensions.AddOtlpExporter(this OpenTelemetry.Logs.OpenTelemetryLoggerOptions loggerOptions, System.Action configure) -> OpenTelemetry.Logs.OpenTelemetryLoggerOptions
\ No newline at end of file
diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/.publicApi/netstandard2.1/PublicAPI.Unshipped.txt b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/.publicApi/netstandard2.1/PublicAPI.Unshipped.txt
index e69de29bb..e3204a2b2 100644
--- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/.publicApi/netstandard2.1/PublicAPI.Unshipped.txt
+++ b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/.publicApi/netstandard2.1/PublicAPI.Unshipped.txt
@@ -0,0 +1,3 @@
+OpenTelemetry.Logs.OtlpLogExporterHelperExtensions
+static OpenTelemetry.Logs.OtlpLogExporterHelperExtensions.AddOtlpExporter(this OpenTelemetry.Logs.OpenTelemetryLoggerOptions loggerOptions) -> OpenTelemetry.Logs.OpenTelemetryLoggerOptions
+static OpenTelemetry.Logs.OtlpLogExporterHelperExtensions.AddOtlpExporter(this OpenTelemetry.Logs.OpenTelemetryLoggerOptions loggerOptions, System.Action configure) -> OpenTelemetry.Logs.OpenTelemetryLoggerOptions
\ No newline at end of file
diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/AssemblyInfo.cs b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/AssemblyInfo.cs
index 44e26f378..2bc348cad 100644
--- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/AssemblyInfo.cs
+++ b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/AssemblyInfo.cs
@@ -20,7 +20,6 @@ using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests, PublicKey=002400000480000094000000060200000024000052534131000400000100010051c1562a090fb0c9f391012a32198b5e5d9a60e9b80fa2d7b434c9e5ccb7259bd606e66f9660676afc6692b8cdc6793d190904551d2103b7b22fa636dcbb8208839785ba402ea08fc00c8f1500ccef28bbf599aa64ffb1e1d5dc1bf3420a3777badfe697856e9d52070a50c3ea5821c80bef17ca3acffa28f89dd413f096f898")]
[assembly: InternalsVisibleTo("Benchmarks, PublicKey=002400000480000094000000060200000024000052534131000400000100010051c1562a090fb0c9f391012a32198b5e5d9a60e9b80fa2d7b434c9e5ccb7259bd606e66f9660676afc6692b8cdc6793d190904551d2103b7b22fa636dcbb8208839785ba402ea08fc00c8f1500ccef28bbf599aa64ffb1e1d5dc1bf3420a3777badfe697856e9d52070a50c3ea5821c80bef17ca3acffa28f89dd413f096f898")]
[assembly: InternalsVisibleTo("MockOpenTelemetryCollector, PublicKey=002400000480000094000000060200000024000052534131000400000100010051c1562a090fb0c9f391012a32198b5e5d9a60e9b80fa2d7b434c9e5ccb7259bd606e66f9660676afc6692b8cdc6793d190904551d2103b7b22fa636dcbb8208839785ba402ea08fc00c8f1500ccef28bbf599aa64ffb1e1d5dc1bf3420a3777badfe697856e9d52070a50c3ea5821c80bef17ca3acffa28f89dd413f096f898")]
-[assembly: InternalsVisibleTo("OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs, PublicKey=002400000480000094000000060200000024000052534131000400000100010051c1562a090fb0c9f391012a32198b5e5d9a60e9b80fa2d7b434c9e5ccb7259bd606e66f9660676afc6692b8cdc6793d190904551d2103b7b22fa636dcbb8208839785ba402ea08fc00c8f1500ccef28bbf599aa64ffb1e1d5dc1bf3420a3777badfe697856e9d52070a50c3ea5821c80bef17ca3acffa28f89dd413f096f898")]
// Used by Moq.
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]
diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md
index 284e36769..1e100c944 100644
--- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md
+++ b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md
@@ -2,6 +2,14 @@
## Unreleased
+* Merged `OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs` package in to
+`OpenTelemetry.Exporter.OpenTelemetryProtocol`. Going Forward,
+`OpenTelemetry.Exporter.OpenTelemetryProtocol` will be the only package needed
+for all 3 signals (Logs, Metrics and Traces). All the changes made in
+[`OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs`](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.5.0/src/OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/CHANGELOG.md#changelog)
+are now included in this package.
+([#4556](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4556))
+
* Add back support for Exemplars. See [exemplars](../../docs/metrics/customizing-the-sdk/README.md#exemplars)
for instructions to enable exemplars.
([#4553](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4553))
diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/OtlpLogExporterHelperExtensions.cs b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/OtlpLogExporterHelperExtensions.cs
new file mode 100644
index 000000000..d8b7b98e2
--- /dev/null
+++ b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/OtlpLogExporterHelperExtensions.cs
@@ -0,0 +1,81 @@
+//
+// Copyright The OpenTelemetry Authors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+using System.Diagnostics;
+using OpenTelemetry.Exporter;
+
+namespace OpenTelemetry.Logs;
+
+///
+/// Extension methods to simplify registering of the OpenTelemetry Protocol (OTLP) exporter.
+///
+public static class OtlpLogExporterHelperExtensions
+{
+ ///
+ /// Adds OTLP Exporter as a configuration to the OpenTelemetry ILoggingBuilder.
+ ///
+ ///
+ /// options to use.
+ /// The instance of to chain the calls.
+ public static OpenTelemetryLoggerOptions AddOtlpExporter(this OpenTelemetryLoggerOptions loggerOptions)
+ => AddOtlpExporterInternal(loggerOptions, configure: null);
+
+ ///
+ /// Adds OTLP Exporter as a configuration to the OpenTelemetry ILoggingBuilder.
+ ///
+ /// options to use.
+ /// Callback action for configuring .
+ /// The instance of to chain the calls.
+ public static OpenTelemetryLoggerOptions AddOtlpExporter(
+ this OpenTelemetryLoggerOptions loggerOptions,
+ Action configure)
+ => AddOtlpExporterInternal(loggerOptions, configure);
+
+ private static OpenTelemetryLoggerOptions AddOtlpExporterInternal(
+ OpenTelemetryLoggerOptions loggerOptions,
+ Action configure)
+ {
+ var exporterOptions = new OtlpExporterOptions();
+
+ // TODO: We are using span/activity batch environment variable keys
+ // here when we should be using the ones for logs.
+ var defaultBatchOptions = exporterOptions.BatchExportProcessorOptions;
+
+ Debug.Assert(defaultBatchOptions != null, "defaultBatchOptions was null");
+
+ configure?.Invoke(exporterOptions);
+
+ var otlpExporter = new OtlpLogExporter(exporterOptions);
+
+ if (exporterOptions.ExportProcessorType == ExportProcessorType.Simple)
+ {
+ loggerOptions.AddProcessor(new SimpleLogRecordExportProcessor(otlpExporter));
+ }
+ else
+ {
+ var batchOptions = exporterOptions.BatchExportProcessorOptions ?? defaultBatchOptions;
+
+ loggerOptions.AddProcessor(new BatchLogRecordExportProcessor(
+ otlpExporter,
+ batchOptions.MaxQueueSize,
+ batchOptions.ScheduledDelayMilliseconds,
+ batchOptions.ExporterTimeoutMilliseconds,
+ batchOptions.MaxExportBatchSize));
+ }
+
+ return loggerOptions;
+ }
+}
diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/README.md b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/README.md
index ccdc6d93d..414034e38 100644
--- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/README.md
+++ b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/README.md
@@ -51,14 +51,7 @@ runnable example.
## Enable Log Exporter
-This package currently only supports exporting traces and metrics. Support for
-exporting logs is provided by installing the
-[`OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs`](../OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs/README.md)
-package.
-
-Once the OTLP log exporter is stable, it'll be folded into this package. Check
-[this](https://github.com/open-telemetry/opentelemetry-dotnet/milestone/35)
-milestone for tracking.
+// TODO
## Configuration
diff --git a/test/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests.csproj b/test/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests.csproj
index 73d0c08cf..6949715aa 100644
--- a/test/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests.csproj
+++ b/test/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests.csproj
@@ -36,7 +36,6 @@
-