Add extension method to add ConsoleExporter for logs (#1452)

* Added an extension method to add ConsoleExporter for logs; Updated the logs getting-started docs to add ConsoleExporter

* Updated CHANGELOG.md

* Addressing PR comments

Co-authored-by: Cijo Thomas <cithomas@microsoft.com>
This commit is contained in:
Utkarsh Umesan Pillai 2020-11-03 20:10:48 -08:00 committed by GitHub
parent c55145b186
commit fcde600f22
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 56 additions and 4 deletions

View File

@ -14,6 +14,7 @@
// limitations under the License. // limitations under the License.
// </copyright> // </copyright>
using OpenTelemetry.Trace;
#if NETCOREAPP2_1 #if NETCOREAPP2_1
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
#endif #endif
@ -30,7 +31,7 @@ public class Program
#endif #endif
{ {
builder.AddOpenTelemetry(options => options builder.AddOpenTelemetry(options => options
.AddInMemoryExporter()); // TODO: change to console output .AddConsoleExporter());
}); });
#if NETCOREAPP2_1 #if NETCOREAPP2_1

View File

@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<ItemGroup> <ItemGroup>
<ProjectReference Include="$(RepoRoot)\src\OpenTelemetry.Exporter.InMemory\OpenTelemetry.Exporter.InMemory.csproj" /> <ProjectReference Include="$(RepoRoot)\src\OpenTelemetry.Exporter.Console\OpenTelemetry.Exporter.Console.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp2.1'"> <ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp2.1'">

View File

@ -2,6 +2,12 @@
## Unreleased ## Unreleased
* Add extension method to add `ConsoleExporter` for logs
([#1452](https://github.com/open-telemetry/opentelemetry-dotnet/pull/1452))
* Generalized `ConsoleExporter` to add support for logs
([#1438](https://github.com/open-telemetry/opentelemetry-dotnet/pull/1438))
## 0.7.0-beta.1 ## 0.7.0-beta.1
Released 2020-Oct-16 Released 2020-Oct-16

View File

@ -0,0 +1,45 @@
// <copyright file="ConsoleExporterLoggingExtensions.cs" company="OpenTelemetry Authors">
// 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.
// </copyright>
#if NET461 || NETSTANDARD2_0
using System;
using OpenTelemetry.Exporter;
using OpenTelemetry.Logs;
namespace OpenTelemetry.Trace
{
public static class ConsoleExporterLoggingExtensions
{
/// <summary>
/// Adds Console Exporter as a configuration to the OpenTelemetry ILoggingBuilder.
/// </summary>
/// <param name="loggerOptions"><see cref="OpenTelemetryLoggerOptions"/> options to use.</param>
/// <param name="configure">Exporter configuration options.</param>
/// <returns>The instance of <see cref="OpenTelemetryLoggerOptions"/> to chain the calls.</returns>
public static OpenTelemetryLoggerOptions AddConsoleExporter(this OpenTelemetryLoggerOptions loggerOptions, Action<ConsoleExporterOptions> configure = null)
{
if (loggerOptions == null)
{
throw new ArgumentNullException(nameof(loggerOptions));
}
var options = new ConsoleExporterOptions();
configure?.Invoke(options);
return loggerOptions.AddProcessor(new SimpleExportProcessor<LogRecord>(new ConsoleExporter<LogRecord>(options)));
}
}
}
#endif

View File

@ -3,7 +3,7 @@
[![NuGet](https://img.shields.io/nuget/v/OpenTelemetry.Exporter.Console.svg)](https://www.nuget.org/packages/OpenTelemetry.Exporter.Console) [![NuGet](https://img.shields.io/nuget/v/OpenTelemetry.Exporter.Console.svg)](https://www.nuget.org/packages/OpenTelemetry.Exporter.Console)
[![NuGet](https://img.shields.io/nuget/dt/OpenTelemetry.Exporter.Console.svg)](https://www.nuget.org/packages/OpenTelemetry.Exporter.Console) [![NuGet](https://img.shields.io/nuget/dt/OpenTelemetry.Exporter.Console.svg)](https://www.nuget.org/packages/OpenTelemetry.Exporter.Console)
The console exporter prints data to the Console in a JSON serialized format. The console exporter prints data to the Console window.
**Note:** this exporter is intended to be used during learning how telemetry **Note:** this exporter is intended to be used during learning how telemetry
data are created and exported. It is not recommended for any production data are created and exported. It is not recommended for any production