[sdk-logs] Expose logging SDK implementation as public (#4568)
This commit is contained in:
parent
2e57e2daab
commit
d57e6f8688
|
|
@ -6,6 +6,10 @@
|
||||||
for instructions to enable exemplars.
|
for instructions to enable exemplars.
|
||||||
([#4553](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4553))
|
([#4553](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4553))
|
||||||
|
|
||||||
|
* Updated to display `Severity` and `SeverityText` text instead of
|
||||||
|
`ILogger.LogLevel` when exporting `LogRecord` instances.
|
||||||
|
([#4568](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4568))
|
||||||
|
|
||||||
## 1.5.0
|
## 1.5.0
|
||||||
|
|
||||||
Released 2023-Jun-05
|
Released 2023-Jun-05
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,15 @@ namespace OpenTelemetry.Exporter
|
||||||
this.WriteLine($"{"LogRecord.CategoryName:",-RightPaddingLength}{logRecord.CategoryName}");
|
this.WriteLine($"{"LogRecord.CategoryName:",-RightPaddingLength}{logRecord.CategoryName}");
|
||||||
}
|
}
|
||||||
|
|
||||||
this.WriteLine($"{"LogRecord.LogLevel:",-RightPaddingLength}{logRecord.LogLevel}");
|
if (logRecord.Severity.HasValue)
|
||||||
|
{
|
||||||
|
this.WriteLine($"{"LogRecord.Severity:",-RightPaddingLength}{logRecord.Severity}");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (logRecord.SeverityText != null)
|
||||||
|
{
|
||||||
|
this.WriteLine($"{"LogRecord.SeverityText:",-RightPaddingLength}{logRecord.SeverityText}");
|
||||||
|
}
|
||||||
|
|
||||||
if (logRecord.FormattedMessage != null)
|
if (logRecord.FormattedMessage != null)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -28,13 +28,11 @@
|
||||||
<Compile Include="$(RepoRoot)\src\OpenTelemetry.Api\Internal\ExceptionExtensions.cs" Link="Includes\ExceptionExtensions.cs" />
|
<Compile Include="$(RepoRoot)\src\OpenTelemetry.Api\Internal\ExceptionExtensions.cs" Link="Includes\ExceptionExtensions.cs" />
|
||||||
<Compile Include="$(RepoRoot)\src\OpenTelemetry.Api\Internal\Guard.cs" Link="Includes\Guard.cs" />
|
<Compile Include="$(RepoRoot)\src\OpenTelemetry.Api\Internal\Guard.cs" Link="Includes\Guard.cs" />
|
||||||
<Compile Include="$(RepoRoot)\src\OpenTelemetry.Api\Internal\SpanAttributeConstants.cs" Link="Includes\SpanAttributeConstants.cs" />
|
<Compile Include="$(RepoRoot)\src\OpenTelemetry.Api\Internal\SpanAttributeConstants.cs" Link="Includes\SpanAttributeConstants.cs" />
|
||||||
<!-- Note: OpenTelemetry.Exporter.Console temporarily sees OpenTelemetry internals for LoggerProviderBuilder extensions
|
|
||||||
<Compile Include="$(RepoRoot)\src\OpenTelemetry\Internal\OpenTelemetrySdkEventSource.cs" Link="Includes\OpenTelemetrySdkEventSource.cs" />
|
<Compile Include="$(RepoRoot)\src\OpenTelemetry\Internal\OpenTelemetrySdkEventSource.cs" Link="Includes\OpenTelemetrySdkEventSource.cs" />
|
||||||
<Compile Include="$(RepoRoot)\src\OpenTelemetry\Internal\PeriodicExportingMetricReaderHelper.cs" Link="Includes\PeriodicExportingMetricReaderHelper.cs" />
|
<Compile Include="$(RepoRoot)\src\OpenTelemetry\Internal\PeriodicExportingMetricReaderHelper.cs" Link="Includes\PeriodicExportingMetricReaderHelper.cs" />
|
||||||
<Compile Include="$(RepoRoot)\src\OpenTelemetry\Internal\TagTransformer.cs" Link="Includes\TagTransformer.cs" />
|
<Compile Include="$(RepoRoot)\src\OpenTelemetry\Internal\TagTransformer.cs" Link="Includes\TagTransformer.cs" />
|
||||||
<Compile Include="$(RepoRoot)\src\OpenTelemetry\Internal\Shims\UnconditionalSuppressMessageAttribute.cs" Link="Includes\UnconditionalSuppressMessageAttribute.cs" Condition="'$(TargetFrameworkIdentifier)' != '.NETCoreApp'" />
|
<Compile Include="$(RepoRoot)\src\OpenTelemetry\Internal\Shims\UnconditionalSuppressMessageAttribute.cs" Link="Includes\UnconditionalSuppressMessageAttribute.cs" Condition="'$(TargetFrameworkIdentifier)' != '.NETCoreApp'" />
|
||||||
<Compile Include="$(RepoRoot)\src\OpenTelemetry\Metrics\Base2ExponentialBucketHistogram.LowerBoundary.cs" Link="Includes\Base2ExponentialBucketHistogram.LowerBoundary.cs" />
|
<Compile Include="$(RepoRoot)\src\OpenTelemetry\Metrics\Base2ExponentialBucketHistogram.LowerBoundary.cs" Link="Includes\Base2ExponentialBucketHistogram.LowerBoundary.cs" />
|
||||||
-->
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
||||||
|
|
@ -2,18 +2,21 @@
|
||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
* Merged `OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs` package in to
|
* Merged `OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs` package into
|
||||||
`OpenTelemetry.Exporter.OpenTelemetryProtocol`. Going Forward,
|
`OpenTelemetry.Exporter.OpenTelemetryProtocol`. Going Forward,
|
||||||
`OpenTelemetry.Exporter.OpenTelemetryProtocol` will be the only package needed
|
`OpenTelemetry.Exporter.OpenTelemetryProtocol` will be the only package needed
|
||||||
for all 3 signals (Logs, Metrics and Traces). All the changes made in
|
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)
|
[`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.
|
are now included in this package.
|
||||||
([#4556](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4556))
|
([#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)
|
* Add back support for Exemplars. See [exemplars](../../docs/metrics/customizing-the-sdk/README.md#exemplars)
|
||||||
for instructions to enable exemplars.
|
for instructions to enable exemplars.
|
||||||
([#4553](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4553))
|
([#4553](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4553))
|
||||||
|
|
||||||
|
* Updated to support `Severity` and `SeverityText` when exporting `LogRecord`s.
|
||||||
|
([#4568](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4568))
|
||||||
|
|
||||||
## 1.5.0
|
## 1.5.0
|
||||||
|
|
||||||
Released 2023-Jun-05
|
Released 2023-Jun-05
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,6 @@
|
||||||
|
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
using Google.Protobuf;
|
using Google.Protobuf;
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using OpenTelemetry.Internal;
|
using OpenTelemetry.Internal;
|
||||||
using OpenTelemetry.Logs;
|
using OpenTelemetry.Logs;
|
||||||
using OpenTelemetry.Trace;
|
using OpenTelemetry.Trace;
|
||||||
|
|
@ -29,11 +28,6 @@ namespace OpenTelemetry.Exporter.OpenTelemetryProtocol.Implementation
|
||||||
{
|
{
|
||||||
internal static class LogRecordExtensions
|
internal static class LogRecordExtensions
|
||||||
{
|
{
|
||||||
private static readonly string[] LogLevels = new string[7]
|
|
||||||
{
|
|
||||||
"Trace", "Debug", "Information", "Warning", "Error", "Critical", "None",
|
|
||||||
};
|
|
||||||
|
|
||||||
internal static void AddBatch(
|
internal static void AddBatch(
|
||||||
this OtlpCollector.ExportLogsServiceRequest request,
|
this OtlpCollector.ExportLogsServiceRequest request,
|
||||||
SdkLimitOptions sdkLimitOptions,
|
SdkLimitOptions sdkLimitOptions,
|
||||||
|
|
@ -71,10 +65,18 @@ namespace OpenTelemetry.Exporter.OpenTelemetryProtocol.Implementation
|
||||||
{
|
{
|
||||||
TimeUnixNano = timestamp,
|
TimeUnixNano = timestamp,
|
||||||
ObservedTimeUnixNano = timestamp,
|
ObservedTimeUnixNano = timestamp,
|
||||||
SeverityNumber = GetSeverityNumber(logRecord.LogLevel),
|
SeverityNumber = GetSeverityNumber(logRecord.Severity),
|
||||||
SeverityText = LogLevels[(int)logRecord.LogLevel],
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (!string.IsNullOrWhiteSpace(logRecord.SeverityText))
|
||||||
|
{
|
||||||
|
otlpLogRecord.SeverityText = logRecord.SeverityText;
|
||||||
|
}
|
||||||
|
else if (logRecord.Severity.HasValue)
|
||||||
|
{
|
||||||
|
otlpLogRecord.SeverityText = logRecord.Severity.Value.ToShortName();
|
||||||
|
}
|
||||||
|
|
||||||
var attributeValueLengthLimit = sdkLimitOptions.AttributeValueLengthLimit;
|
var attributeValueLengthLimit = sdkLimitOptions.AttributeValueLengthLimit;
|
||||||
var attributeCountLimit = sdkLimitOptions.AttributeCountLimit ?? int.MaxValue;
|
var attributeCountLimit = sdkLimitOptions.AttributeCountLimit ?? int.MaxValue;
|
||||||
|
|
||||||
|
|
@ -226,35 +228,14 @@ namespace OpenTelemetry.Exporter.OpenTelemetryProtocol.Implementation
|
||||||
}
|
}
|
||||||
|
|
||||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
private static OtlpLogs.SeverityNumber GetSeverityNumber(LogLevel logLevel)
|
private static OtlpLogs.SeverityNumber GetSeverityNumber(LogRecordSeverity? severity)
|
||||||
{
|
{
|
||||||
// Maps the ILogger LogLevel to OpenTelemetry logging level.
|
if (!severity.HasValue)
|
||||||
// https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#appendix-b-severitynumber-example-mappings
|
|
||||||
// TODO: for improving perf simply do ((int)loglevel * 4) + 1
|
|
||||||
// or ((int)logLevel << 2) + 1
|
|
||||||
// Current code is just for ease of reading.
|
|
||||||
switch (logLevel)
|
|
||||||
{
|
{
|
||||||
case LogLevel.Trace:
|
return OtlpLogs.SeverityNumber.Unspecified;
|
||||||
return OtlpLogs.SeverityNumber.Trace;
|
|
||||||
case LogLevel.Debug:
|
|
||||||
return OtlpLogs.SeverityNumber.Debug;
|
|
||||||
case LogLevel.Information:
|
|
||||||
return OtlpLogs.SeverityNumber.Info;
|
|
||||||
case LogLevel.Warning:
|
|
||||||
return OtlpLogs.SeverityNumber.Warn;
|
|
||||||
case LogLevel.Error:
|
|
||||||
return OtlpLogs.SeverityNumber.Error;
|
|
||||||
case LogLevel.Critical:
|
|
||||||
return OtlpLogs.SeverityNumber.Fatal;
|
|
||||||
|
|
||||||
// TODO:
|
|
||||||
// we reach default only for LogLevel.None
|
|
||||||
// but that is filtered out anyway.
|
|
||||||
// should we throw here then?
|
|
||||||
default:
|
|
||||||
return OtlpLogs.SeverityNumber.Debug;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return (OtlpLogs.SeverityNumber)(int)severity.Value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,12 @@
|
||||||
|
OpenTelemetry.Logs.BatchExportLogRecordProcessorOptions
|
||||||
|
OpenTelemetry.Logs.BatchExportLogRecordProcessorOptions.BatchExportLogRecordProcessorOptions() -> void
|
||||||
|
OpenTelemetry.Logs.LoggerProviderBuilderExtensions
|
||||||
|
OpenTelemetry.Logs.LoggerProviderExtensions
|
||||||
|
OpenTelemetry.Logs.LogRecord.Logger.get -> OpenTelemetry.Logs.Logger?
|
||||||
|
OpenTelemetry.Logs.LogRecord.Severity.get -> OpenTelemetry.Logs.LogRecordSeverity?
|
||||||
|
OpenTelemetry.Logs.LogRecord.Severity.set -> void
|
||||||
|
OpenTelemetry.Logs.LogRecord.SeverityText.get -> string?
|
||||||
|
OpenTelemetry.Logs.LogRecord.SeverityText.set -> void
|
||||||
OpenTelemetry.Metrics.AlwaysOffExemplarFilter
|
OpenTelemetry.Metrics.AlwaysOffExemplarFilter
|
||||||
OpenTelemetry.Metrics.AlwaysOffExemplarFilter.AlwaysOffExemplarFilter() -> void
|
OpenTelemetry.Metrics.AlwaysOffExemplarFilter.AlwaysOffExemplarFilter() -> void
|
||||||
OpenTelemetry.Metrics.AlwaysOnExemplarFilter
|
OpenTelemetry.Metrics.AlwaysOnExemplarFilter
|
||||||
|
|
@ -13,7 +22,17 @@ OpenTelemetry.Metrics.ExemplarFilter.ExemplarFilter() -> void
|
||||||
OpenTelemetry.Metrics.MetricPoint.GetExemplars() -> OpenTelemetry.Metrics.Exemplar[]!
|
OpenTelemetry.Metrics.MetricPoint.GetExemplars() -> OpenTelemetry.Metrics.Exemplar[]!
|
||||||
OpenTelemetry.Metrics.TraceBasedExemplarFilter
|
OpenTelemetry.Metrics.TraceBasedExemplarFilter
|
||||||
OpenTelemetry.Metrics.TraceBasedExemplarFilter.TraceBasedExemplarFilter() -> void
|
OpenTelemetry.Metrics.TraceBasedExemplarFilter.TraceBasedExemplarFilter() -> void
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.AddProcessor(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder, OpenTelemetry.BaseProcessor<OpenTelemetry.Logs.LogRecord!>! processor) -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.AddProcessor(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder, System.Func<System.IServiceProvider!, OpenTelemetry.BaseProcessor<OpenTelemetry.Logs.LogRecord!>!>! implementationFactory) -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.AddProcessor<T>(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder) -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.Build(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder) -> OpenTelemetry.Logs.LoggerProvider!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.ConfigureResource(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder, System.Action<OpenTelemetry.Resources.ResourceBuilder!>! configure) -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.SetResourceBuilder(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder, OpenTelemetry.Resources.ResourceBuilder! resourceBuilder) -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderExtensions.AddProcessor(this OpenTelemetry.Logs.LoggerProvider! provider, OpenTelemetry.BaseProcessor<OpenTelemetry.Logs.LogRecord!>! processor) -> OpenTelemetry.Logs.LoggerProvider!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderExtensions.ForceFlush(this OpenTelemetry.Logs.LoggerProvider! provider, int timeoutMilliseconds = -1) -> bool
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderExtensions.Shutdown(this OpenTelemetry.Logs.LoggerProvider! provider, int timeoutMilliseconds = -1) -> bool
|
||||||
static OpenTelemetry.Metrics.MeterProviderBuilderExtensions.SetExemplarFilter(this OpenTelemetry.Metrics.MeterProviderBuilder! meterProviderBuilder, OpenTelemetry.Metrics.ExemplarFilter! exemplarFilter) -> OpenTelemetry.Metrics.MeterProviderBuilder!
|
static OpenTelemetry.Metrics.MeterProviderBuilderExtensions.SetExemplarFilter(this OpenTelemetry.Metrics.MeterProviderBuilder! meterProviderBuilder, OpenTelemetry.Metrics.ExemplarFilter! exemplarFilter) -> OpenTelemetry.Metrics.MeterProviderBuilder!
|
||||||
|
static OpenTelemetry.Sdk.CreateLoggerProviderBuilder() -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
|
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
|
||||||
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
|
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
|
||||||
~OpenTelemetry.Metrics.Exemplar.FilteredTags.get -> System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<string, object>>
|
~OpenTelemetry.Metrics.Exemplar.FilteredTags.get -> System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<string, object>>
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,12 @@
|
||||||
|
OpenTelemetry.Logs.BatchExportLogRecordProcessorOptions
|
||||||
|
OpenTelemetry.Logs.BatchExportLogRecordProcessorOptions.BatchExportLogRecordProcessorOptions() -> void
|
||||||
|
OpenTelemetry.Logs.LoggerProviderBuilderExtensions
|
||||||
|
OpenTelemetry.Logs.LoggerProviderExtensions
|
||||||
|
OpenTelemetry.Logs.LogRecord.Logger.get -> OpenTelemetry.Logs.Logger?
|
||||||
|
OpenTelemetry.Logs.LogRecord.Severity.get -> OpenTelemetry.Logs.LogRecordSeverity?
|
||||||
|
OpenTelemetry.Logs.LogRecord.Severity.set -> void
|
||||||
|
OpenTelemetry.Logs.LogRecord.SeverityText.get -> string?
|
||||||
|
OpenTelemetry.Logs.LogRecord.SeverityText.set -> void
|
||||||
OpenTelemetry.Metrics.AlwaysOffExemplarFilter
|
OpenTelemetry.Metrics.AlwaysOffExemplarFilter
|
||||||
OpenTelemetry.Metrics.AlwaysOffExemplarFilter.AlwaysOffExemplarFilter() -> void
|
OpenTelemetry.Metrics.AlwaysOffExemplarFilter.AlwaysOffExemplarFilter() -> void
|
||||||
OpenTelemetry.Metrics.AlwaysOnExemplarFilter
|
OpenTelemetry.Metrics.AlwaysOnExemplarFilter
|
||||||
|
|
@ -13,7 +22,17 @@ OpenTelemetry.Metrics.ExemplarFilter.ExemplarFilter() -> void
|
||||||
OpenTelemetry.Metrics.MetricPoint.GetExemplars() -> OpenTelemetry.Metrics.Exemplar[]!
|
OpenTelemetry.Metrics.MetricPoint.GetExemplars() -> OpenTelemetry.Metrics.Exemplar[]!
|
||||||
OpenTelemetry.Metrics.TraceBasedExemplarFilter
|
OpenTelemetry.Metrics.TraceBasedExemplarFilter
|
||||||
OpenTelemetry.Metrics.TraceBasedExemplarFilter.TraceBasedExemplarFilter() -> void
|
OpenTelemetry.Metrics.TraceBasedExemplarFilter.TraceBasedExemplarFilter() -> void
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.AddProcessor(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder, OpenTelemetry.BaseProcessor<OpenTelemetry.Logs.LogRecord!>! processor) -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.AddProcessor(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder, System.Func<System.IServiceProvider!, OpenTelemetry.BaseProcessor<OpenTelemetry.Logs.LogRecord!>!>! implementationFactory) -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.AddProcessor<T>(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder) -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.Build(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder) -> OpenTelemetry.Logs.LoggerProvider!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.ConfigureResource(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder, System.Action<OpenTelemetry.Resources.ResourceBuilder!>! configure) -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.SetResourceBuilder(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder, OpenTelemetry.Resources.ResourceBuilder! resourceBuilder) -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderExtensions.AddProcessor(this OpenTelemetry.Logs.LoggerProvider! provider, OpenTelemetry.BaseProcessor<OpenTelemetry.Logs.LogRecord!>! processor) -> OpenTelemetry.Logs.LoggerProvider!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderExtensions.ForceFlush(this OpenTelemetry.Logs.LoggerProvider! provider, int timeoutMilliseconds = -1) -> bool
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderExtensions.Shutdown(this OpenTelemetry.Logs.LoggerProvider! provider, int timeoutMilliseconds = -1) -> bool
|
||||||
static OpenTelemetry.Metrics.MeterProviderBuilderExtensions.SetExemplarFilter(this OpenTelemetry.Metrics.MeterProviderBuilder! meterProviderBuilder, OpenTelemetry.Metrics.ExemplarFilter! exemplarFilter) -> OpenTelemetry.Metrics.MeterProviderBuilder!
|
static OpenTelemetry.Metrics.MeterProviderBuilderExtensions.SetExemplarFilter(this OpenTelemetry.Metrics.MeterProviderBuilder! meterProviderBuilder, OpenTelemetry.Metrics.ExemplarFilter! exemplarFilter) -> OpenTelemetry.Metrics.MeterProviderBuilder!
|
||||||
|
static OpenTelemetry.Sdk.CreateLoggerProviderBuilder() -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
|
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
|
||||||
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
|
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
|
||||||
~OpenTelemetry.Metrics.Exemplar.FilteredTags.get -> System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<string, object>>
|
~OpenTelemetry.Metrics.Exemplar.FilteredTags.get -> System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<string, object>>
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,12 @@
|
||||||
|
OpenTelemetry.Logs.BatchExportLogRecordProcessorOptions
|
||||||
|
OpenTelemetry.Logs.BatchExportLogRecordProcessorOptions.BatchExportLogRecordProcessorOptions() -> void
|
||||||
|
OpenTelemetry.Logs.LoggerProviderBuilderExtensions
|
||||||
|
OpenTelemetry.Logs.LoggerProviderExtensions
|
||||||
|
OpenTelemetry.Logs.LogRecord.Logger.get -> OpenTelemetry.Logs.Logger?
|
||||||
|
OpenTelemetry.Logs.LogRecord.Severity.get -> OpenTelemetry.Logs.LogRecordSeverity?
|
||||||
|
OpenTelemetry.Logs.LogRecord.Severity.set -> void
|
||||||
|
OpenTelemetry.Logs.LogRecord.SeverityText.get -> string?
|
||||||
|
OpenTelemetry.Logs.LogRecord.SeverityText.set -> void
|
||||||
OpenTelemetry.Metrics.AlwaysOffExemplarFilter
|
OpenTelemetry.Metrics.AlwaysOffExemplarFilter
|
||||||
OpenTelemetry.Metrics.AlwaysOffExemplarFilter.AlwaysOffExemplarFilter() -> void
|
OpenTelemetry.Metrics.AlwaysOffExemplarFilter.AlwaysOffExemplarFilter() -> void
|
||||||
OpenTelemetry.Metrics.AlwaysOnExemplarFilter
|
OpenTelemetry.Metrics.AlwaysOnExemplarFilter
|
||||||
|
|
@ -13,7 +22,17 @@ OpenTelemetry.Metrics.ExemplarFilter.ExemplarFilter() -> void
|
||||||
OpenTelemetry.Metrics.MetricPoint.GetExemplars() -> OpenTelemetry.Metrics.Exemplar[]!
|
OpenTelemetry.Metrics.MetricPoint.GetExemplars() -> OpenTelemetry.Metrics.Exemplar[]!
|
||||||
OpenTelemetry.Metrics.TraceBasedExemplarFilter
|
OpenTelemetry.Metrics.TraceBasedExemplarFilter
|
||||||
OpenTelemetry.Metrics.TraceBasedExemplarFilter.TraceBasedExemplarFilter() -> void
|
OpenTelemetry.Metrics.TraceBasedExemplarFilter.TraceBasedExemplarFilter() -> void
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.AddProcessor(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder, OpenTelemetry.BaseProcessor<OpenTelemetry.Logs.LogRecord!>! processor) -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.AddProcessor(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder, System.Func<System.IServiceProvider!, OpenTelemetry.BaseProcessor<OpenTelemetry.Logs.LogRecord!>!>! implementationFactory) -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.AddProcessor<T>(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder) -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.Build(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder) -> OpenTelemetry.Logs.LoggerProvider!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.ConfigureResource(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder, System.Action<OpenTelemetry.Resources.ResourceBuilder!>! configure) -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.SetResourceBuilder(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder, OpenTelemetry.Resources.ResourceBuilder! resourceBuilder) -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderExtensions.AddProcessor(this OpenTelemetry.Logs.LoggerProvider! provider, OpenTelemetry.BaseProcessor<OpenTelemetry.Logs.LogRecord!>! processor) -> OpenTelemetry.Logs.LoggerProvider!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderExtensions.ForceFlush(this OpenTelemetry.Logs.LoggerProvider! provider, int timeoutMilliseconds = -1) -> bool
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderExtensions.Shutdown(this OpenTelemetry.Logs.LoggerProvider! provider, int timeoutMilliseconds = -1) -> bool
|
||||||
static OpenTelemetry.Metrics.MeterProviderBuilderExtensions.SetExemplarFilter(this OpenTelemetry.Metrics.MeterProviderBuilder! meterProviderBuilder, OpenTelemetry.Metrics.ExemplarFilter! exemplarFilter) -> OpenTelemetry.Metrics.MeterProviderBuilder!
|
static OpenTelemetry.Metrics.MeterProviderBuilderExtensions.SetExemplarFilter(this OpenTelemetry.Metrics.MeterProviderBuilder! meterProviderBuilder, OpenTelemetry.Metrics.ExemplarFilter! exemplarFilter) -> OpenTelemetry.Metrics.MeterProviderBuilder!
|
||||||
|
static OpenTelemetry.Sdk.CreateLoggerProviderBuilder() -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
|
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
|
||||||
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
|
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
|
||||||
~OpenTelemetry.Metrics.Exemplar.FilteredTags.get -> System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<string, object>>
|
~OpenTelemetry.Metrics.Exemplar.FilteredTags.get -> System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<string, object>>
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,12 @@
|
||||||
|
OpenTelemetry.Logs.BatchExportLogRecordProcessorOptions
|
||||||
|
OpenTelemetry.Logs.BatchExportLogRecordProcessorOptions.BatchExportLogRecordProcessorOptions() -> void
|
||||||
|
OpenTelemetry.Logs.LoggerProviderBuilderExtensions
|
||||||
|
OpenTelemetry.Logs.LoggerProviderExtensions
|
||||||
|
OpenTelemetry.Logs.LogRecord.Logger.get -> OpenTelemetry.Logs.Logger?
|
||||||
|
OpenTelemetry.Logs.LogRecord.Severity.get -> OpenTelemetry.Logs.LogRecordSeverity?
|
||||||
|
OpenTelemetry.Logs.LogRecord.Severity.set -> void
|
||||||
|
OpenTelemetry.Logs.LogRecord.SeverityText.get -> string?
|
||||||
|
OpenTelemetry.Logs.LogRecord.SeverityText.set -> void
|
||||||
OpenTelemetry.Metrics.AlwaysOffExemplarFilter
|
OpenTelemetry.Metrics.AlwaysOffExemplarFilter
|
||||||
OpenTelemetry.Metrics.AlwaysOffExemplarFilter.AlwaysOffExemplarFilter() -> void
|
OpenTelemetry.Metrics.AlwaysOffExemplarFilter.AlwaysOffExemplarFilter() -> void
|
||||||
OpenTelemetry.Metrics.AlwaysOnExemplarFilter
|
OpenTelemetry.Metrics.AlwaysOnExemplarFilter
|
||||||
|
|
@ -13,7 +22,17 @@ OpenTelemetry.Metrics.ExemplarFilter.ExemplarFilter() -> void
|
||||||
OpenTelemetry.Metrics.MetricPoint.GetExemplars() -> OpenTelemetry.Metrics.Exemplar[]!
|
OpenTelemetry.Metrics.MetricPoint.GetExemplars() -> OpenTelemetry.Metrics.Exemplar[]!
|
||||||
OpenTelemetry.Metrics.TraceBasedExemplarFilter
|
OpenTelemetry.Metrics.TraceBasedExemplarFilter
|
||||||
OpenTelemetry.Metrics.TraceBasedExemplarFilter.TraceBasedExemplarFilter() -> void
|
OpenTelemetry.Metrics.TraceBasedExemplarFilter.TraceBasedExemplarFilter() -> void
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.AddProcessor(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder, OpenTelemetry.BaseProcessor<OpenTelemetry.Logs.LogRecord!>! processor) -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.AddProcessor(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder, System.Func<System.IServiceProvider!, OpenTelemetry.BaseProcessor<OpenTelemetry.Logs.LogRecord!>!>! implementationFactory) -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.AddProcessor<T>(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder) -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.Build(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder) -> OpenTelemetry.Logs.LoggerProvider!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.ConfigureResource(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder, System.Action<OpenTelemetry.Resources.ResourceBuilder!>! configure) -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.SetResourceBuilder(this OpenTelemetry.Logs.LoggerProviderBuilder! loggerProviderBuilder, OpenTelemetry.Resources.ResourceBuilder! resourceBuilder) -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderExtensions.AddProcessor(this OpenTelemetry.Logs.LoggerProvider! provider, OpenTelemetry.BaseProcessor<OpenTelemetry.Logs.LogRecord!>! processor) -> OpenTelemetry.Logs.LoggerProvider!
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderExtensions.ForceFlush(this OpenTelemetry.Logs.LoggerProvider! provider, int timeoutMilliseconds = -1) -> bool
|
||||||
|
static OpenTelemetry.Logs.LoggerProviderExtensions.Shutdown(this OpenTelemetry.Logs.LoggerProvider! provider, int timeoutMilliseconds = -1) -> bool
|
||||||
static OpenTelemetry.Metrics.MeterProviderBuilderExtensions.SetExemplarFilter(this OpenTelemetry.Metrics.MeterProviderBuilder! meterProviderBuilder, OpenTelemetry.Metrics.ExemplarFilter! exemplarFilter) -> OpenTelemetry.Metrics.MeterProviderBuilder!
|
static OpenTelemetry.Metrics.MeterProviderBuilderExtensions.SetExemplarFilter(this OpenTelemetry.Metrics.MeterProviderBuilder! meterProviderBuilder, OpenTelemetry.Metrics.ExemplarFilter! exemplarFilter) -> OpenTelemetry.Metrics.MeterProviderBuilder!
|
||||||
|
static OpenTelemetry.Sdk.CreateLoggerProviderBuilder() -> OpenTelemetry.Logs.LoggerProviderBuilder!
|
||||||
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
|
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
|
||||||
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
|
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
|
||||||
~OpenTelemetry.Metrics.Exemplar.FilteredTags.get -> System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<string, object>>
|
~OpenTelemetry.Metrics.Exemplar.FilteredTags.get -> System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<string, object>>
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,6 @@
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
|
|
||||||
[assembly: InternalsVisibleTo("OpenTelemetry.Tests" + AssemblyInfo.PublicKey)]
|
[assembly: InternalsVisibleTo("OpenTelemetry.Tests" + AssemblyInfo.PublicKey)]
|
||||||
[assembly: InternalsVisibleTo("OpenTelemetry.Exporter.Console" + AssemblyInfo.PublicKey)]
|
|
||||||
[assembly: InternalsVisibleTo("OpenTelemetry.Exporter.InMemory" + AssemblyInfo.PublicKey)]
|
[assembly: InternalsVisibleTo("OpenTelemetry.Exporter.InMemory" + AssemblyInfo.PublicKey)]
|
||||||
[assembly: InternalsVisibleTo("OpenTelemetry.Exporter.Prometheus.AspNetCore" + AssemblyInfo.PublicKey)]
|
[assembly: InternalsVisibleTo("OpenTelemetry.Exporter.Prometheus.AspNetCore" + AssemblyInfo.PublicKey)]
|
||||||
[assembly: InternalsVisibleTo("OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests" + AssemblyInfo.PublicKey)]
|
[assembly: InternalsVisibleTo("OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests" + AssemblyInfo.PublicKey)]
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,22 @@
|
||||||
for instructions to enable exemplars.
|
for instructions to enable exemplars.
|
||||||
([#4553](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4553))
|
([#4553](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4553))
|
||||||
|
|
||||||
|
* Added [Logs Bridge
|
||||||
|
API](https://github.com/open-telemetry/opentelemetry-specification/blob/976432b74c565e8a84af3570e9b82cb95e1d844c/specification/logs/bridge-api.md)
|
||||||
|
implementation (`Sdk.CreateLoggerProviderBuilder`, etc.).
|
||||||
|
([#4433](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4433))
|
||||||
|
|
||||||
|
* Obsoleted `LogRecord.LogLevel` in favor of the `LogRecord.Severity` property
|
||||||
|
which matches the [OpenTelemetry Specification > Logs DataModel > Severity
|
||||||
|
definition](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-severitynumber).
|
||||||
|
([#4433](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4433))
|
||||||
|
|
||||||
|
* Added `LogRecord.Logger` property to access the [OpenTelemetry Specification >
|
||||||
|
Instrumentation
|
||||||
|
Scope](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/glossary.md#instrumentation-scope)
|
||||||
|
provided during Logger creation.
|
||||||
|
([#4433](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4433))
|
||||||
|
|
||||||
## 1.5.0
|
## 1.5.0
|
||||||
|
|
||||||
Released 2023-Jun-05
|
Released 2023-Jun-05
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ namespace OpenTelemetry.Logs;
|
||||||
/// OTEL_BLRP_SCHEDULE_DELAY environment variables are parsed during object
|
/// OTEL_BLRP_SCHEDULE_DELAY environment variables are parsed during object
|
||||||
/// construction.
|
/// construction.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal class BatchExportLogRecordProcessorOptions : BatchExportProcessorOptions<LogRecord>
|
public class BatchExportLogRecordProcessorOptions : BatchExportProcessorOptions<LogRecord>
|
||||||
{
|
{
|
||||||
internal const string MaxQueueSizeEnvVarKey = "OTEL_BLRP_MAX_QUEUE_SIZE";
|
internal const string MaxQueueSizeEnvVarKey = "OTEL_BLRP_MAX_QUEUE_SIZE";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ namespace OpenTelemetry.Logs;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Contains extension methods for the <see cref="LoggerProviderBuilder"/> class.
|
/// Contains extension methods for the <see cref="LoggerProviderBuilder"/> class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal static class LoggerProviderBuilderExtensions
|
public static class LoggerProviderBuilderExtensions
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Sets the <see cref="ResourceBuilder"/> from which the Resource associated with
|
/// Sets the <see cref="ResourceBuilder"/> from which the Resource associated with
|
||||||
|
|
|
||||||
|
|
@ -157,7 +157,6 @@ internal sealed class OpenTelemetryLogger : ILogger
|
||||||
{
|
{
|
||||||
iLoggerData.State = null;
|
iLoggerData.State = null;
|
||||||
|
|
||||||
/* TODO: Enable this if/when LogRecordAttributeList becomes public.
|
|
||||||
if (typeof(TState) == typeof(LogRecordAttributeList))
|
if (typeof(TState) == typeof(LogRecordAttributeList))
|
||||||
{
|
{
|
||||||
// Note: This block is written to be elided by the JIT when
|
// Note: This block is written to be elided by the JIT when
|
||||||
|
|
@ -169,8 +168,7 @@ internal sealed class OpenTelemetryLogger : ILogger
|
||||||
|
|
||||||
return logRecordAttributes.Export(ref logRecord.AttributeStorage);
|
return logRecordAttributes.Export(ref logRecord.AttributeStorage);
|
||||||
}
|
}
|
||||||
else */
|
else if (state is IReadOnlyList<KeyValuePair<string, object?>> stateList)
|
||||||
if (state is IReadOnlyList<KeyValuePair<string, object?>> stateList)
|
|
||||||
{
|
{
|
||||||
return stateList;
|
return stateList;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -148,6 +148,9 @@ public sealed class LogRecord
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the log category name.
|
/// Gets or sets the log category name.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Note: <see cref="CategoryName"/> is only set when emitting logs through <see cref="ILogger"/>.
|
||||||
|
/// </remarks>
|
||||||
public string? CategoryName
|
public string? CategoryName
|
||||||
{
|
{
|
||||||
get => this.ILoggerData.CategoryName;
|
get => this.ILoggerData.CategoryName;
|
||||||
|
|
@ -157,7 +160,7 @@ public sealed class LogRecord
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the log <see cref="Microsoft.Extensions.Logging.LogLevel"/>.
|
/// Gets or sets the log <see cref="Microsoft.Extensions.Logging.LogLevel"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
// todo: [Obsolete("Use Severity instead LogLevel will be removed in a future version.")]
|
[Obsolete("Use Severity instead. LogLevel will be removed in a future version.")]
|
||||||
public LogLevel LogLevel
|
public LogLevel LogLevel
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
|
@ -183,6 +186,9 @@ public sealed class LogRecord
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the log <see cref="Microsoft.Extensions.Logging.EventId"/>.
|
/// Gets or sets the log <see cref="Microsoft.Extensions.Logging.EventId"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Note: <see cref="EventId"/> is only set when emitting logs through <see cref="ILogger"/>.
|
||||||
|
/// </remarks>
|
||||||
public EventId EventId
|
public EventId EventId
|
||||||
{
|
{
|
||||||
get => this.ILoggerData.EventId;
|
get => this.ILoggerData.EventId;
|
||||||
|
|
@ -193,10 +199,15 @@ public sealed class LogRecord
|
||||||
/// Gets or sets the log formatted message.
|
/// Gets or sets the log formatted message.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Note: Set if <see
|
/// Notes:
|
||||||
/// cref="OpenTelemetryLoggerOptions.IncludeFormattedMessage"/> is
|
/// <list type="bullet">
|
||||||
/// enabled or <c>{OriginalFormat}</c> attribute (message template) is
|
/// <item><see cref="FormattedMessage"/> is only set when emitting logs
|
||||||
/// not found.
|
/// through <see cref="ILogger"/>.</item>
|
||||||
|
/// <item>Set if <see
|
||||||
|
/// cref="OpenTelemetryLoggerOptions.IncludeFormattedMessage"/> is enabled
|
||||||
|
/// or <c>{OriginalFormat}</c> attribute (message template) is not
|
||||||
|
/// found.</item>
|
||||||
|
/// </list>
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
public string? FormattedMessage
|
public string? FormattedMessage
|
||||||
{
|
{
|
||||||
|
|
@ -221,8 +232,13 @@ public sealed class LogRecord
|
||||||
/// Gets or sets the raw state attached to the log.
|
/// Gets or sets the raw state attached to the log.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Note: Set to <see langword="null"/> when <see
|
/// Notes:
|
||||||
/// cref="OpenTelemetryLoggerOptions.ParseStateValues"/> is enabled.
|
/// <list type="bullet">
|
||||||
|
/// <item><see cref="State"/> is only set when emitting logs
|
||||||
|
/// through <see cref="ILogger"/>.</item>
|
||||||
|
/// <item>Set to <see langword="null"/> when <see
|
||||||
|
/// cref="OpenTelemetryLoggerOptions.ParseStateValues"/> is enabled.</item>
|
||||||
|
/// </list>
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
[Obsolete("State cannot be accessed safely outside of an ILogger.Log call stack. Use Attributes instead to safely access the data attached to a LogRecord. State will be removed in a future version.")]
|
[Obsolete("State cannot be accessed safely outside of an ILogger.Log call stack. Use Attributes instead to safely access the data attached to a LogRecord. State will be removed in a future version.")]
|
||||||
public object? State
|
public object? State
|
||||||
|
|
@ -235,7 +251,7 @@ public sealed class LogRecord
|
||||||
/// Gets or sets the state values attached to the log.
|
/// Gets or sets the state values attached to the log.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks><inheritdoc cref="Attributes" /></remarks>
|
/// <remarks><inheritdoc cref="Attributes" /></remarks>
|
||||||
[Obsolete("Use Attributes instead StateValues will be removed in a future version.")]
|
[Obsolete("Use Attributes instead. StateValues will be removed in a future version.")]
|
||||||
public IReadOnlyList<KeyValuePair<string, object?>>? StateValues
|
public IReadOnlyList<KeyValuePair<string, object?>>? StateValues
|
||||||
{
|
{
|
||||||
get => this.Attributes;
|
get => this.Attributes;
|
||||||
|
|
@ -259,6 +275,9 @@ public sealed class LogRecord
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the log <see cref="System.Exception"/>.
|
/// Gets or sets the log <see cref="System.Exception"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Note: <see cref="Exception"/> is only set when emitting logs through <see cref="ILogger"/>.
|
||||||
|
/// </remarks>
|
||||||
public Exception? Exception
|
public Exception? Exception
|
||||||
{
|
{
|
||||||
get => this.ILoggerData.Exception;
|
get => this.ILoggerData.Exception;
|
||||||
|
|
@ -269,7 +288,7 @@ public sealed class LogRecord
|
||||||
/// Gets or sets the original string representation of the severity as it is
|
/// Gets or sets the original string representation of the severity as it is
|
||||||
/// known at the source.
|
/// known at the source.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal string? SeverityText
|
public string? SeverityText
|
||||||
{
|
{
|
||||||
get => this.Data.SeverityText;
|
get => this.Data.SeverityText;
|
||||||
set => this.Data.SeverityText = value;
|
set => this.Data.SeverityText = value;
|
||||||
|
|
@ -278,16 +297,16 @@ public sealed class LogRecord
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the log <see cref="LogRecordSeverity"/>.
|
/// Gets or sets the log <see cref="LogRecordSeverity"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal LogRecordSeverity? Severity
|
public LogRecordSeverity? Severity
|
||||||
{
|
{
|
||||||
get => this.Data.Severity;
|
get => this.Data.Severity;
|
||||||
set => this.Data.Severity = value;
|
set => this.Data.Severity = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the <see cref="Logs.Logger"/> which emitted the <see cref="LogRecord"/>.
|
/// Gets the <see cref="Logs.Logger"/> which emitted the <see cref="LogRecord"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal Logger? Logger { get; /*todo: internal*/ set; }
|
public Logger? Logger { get; internal set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Executes callback for each currently active scope objects in order
|
/// Executes callback for each currently active scope objects in order
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ namespace OpenTelemetry.Logs;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Contains extension methods for the <see cref="LoggerProvider"/> class.
|
/// Contains extension methods for the <see cref="LoggerProvider"/> class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal static class LoggerProviderExtensions
|
public static class LoggerProviderExtensions
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Add a processor to the <see cref="LoggerProvider"/>.
|
/// Add a processor to the <see cref="LoggerProvider"/>.
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,20 @@ namespace OpenTelemetry
|
||||||
Propagators.DefaultTextMapPropagator = textMapPropagator;
|
Propagators.DefaultTextMapPropagator = textMapPropagator;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Creates a <see cref="LoggerProviderBuilder"/> which is used to build
|
||||||
|
/// a <see cref="LoggerProvider"/>. In a typical application, a single
|
||||||
|
/// <see cref="LoggerProvider"/> is created at application startup and
|
||||||
|
/// disposed at application shutdown. It is important to ensure that the
|
||||||
|
/// provider is not disposed too early.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns><see cref="LoggerProviderBuilder"/> instance, which is used
|
||||||
|
/// to build a <see cref="LoggerProvider"/>.</returns>
|
||||||
|
public static LoggerProviderBuilder CreateLoggerProviderBuilder()
|
||||||
|
{
|
||||||
|
return new LoggerProviderBuilderBase();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates a <see cref="MeterProviderBuilder"/> which is used to build
|
/// Creates a <see cref="MeterProviderBuilder"/> which is used to build
|
||||||
/// a <see cref="MeterProvider"/>. In a typical application, a single
|
/// a <see cref="MeterProvider"/>. In a typical application, a single
|
||||||
|
|
@ -84,19 +98,5 @@ namespace OpenTelemetry
|
||||||
{
|
{
|
||||||
return new TracerProviderBuilderBase();
|
return new TracerProviderBuilderBase();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Creates a <see cref="LoggerProviderBuilder"/> which is used to build
|
|
||||||
/// a <see cref="LoggerProvider"/>. In a typical application, a single
|
|
||||||
/// <see cref="LoggerProvider"/> is created at application startup and
|
|
||||||
/// disposed at application shutdown. It is important to ensure that the
|
|
||||||
/// provider is not disposed too early.
|
|
||||||
/// </summary>
|
|
||||||
/// <returns><see cref="LoggerProviderBuilder"/> instance, which is used
|
|
||||||
/// to build a <see cref="LoggerProvider"/>.</returns>
|
|
||||||
internal static LoggerProviderBuilder CreateLoggerProviderBuilder()
|
|
||||||
{
|
|
||||||
return new LoggerProviderBuilderBase();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -382,7 +382,10 @@ namespace OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests
|
||||||
var otlpLogRecord = logRecord.ToOtlpLog(DefaultSdkLimitOptions);
|
var otlpLogRecord = logRecord.ToOtlpLog(DefaultSdkLimitOptions);
|
||||||
|
|
||||||
Assert.NotNull(otlpLogRecord);
|
Assert.NotNull(otlpLogRecord);
|
||||||
|
#pragma warning disable CS0618 // Type or member is obsolete
|
||||||
Assert.Equal(logRecord.LogLevel.ToString(), otlpLogRecord.SeverityText);
|
Assert.Equal(logRecord.LogLevel.ToString(), otlpLogRecord.SeverityText);
|
||||||
|
#pragma warning restore CS0618 // Type or member is obsolete
|
||||||
|
Assert.Equal((int)logRecord.Severity, (int)otlpLogRecord.SeverityNumber);
|
||||||
switch (logLevel)
|
switch (logLevel)
|
||||||
{
|
{
|
||||||
case LogLevel.Trace:
|
case LogLevel.Trace:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue