NLog.Targets.OpenTelemetryHttp
6.1.4
dotnet add package NLog.Targets.OpenTelemetryHttp --version 6.1.4
NuGet\Install-Package NLog.Targets.OpenTelemetryHttp -Version 6.1.4
<PackageReference Include="NLog.Targets.OpenTelemetryHttp" Version="6.1.4" />
<PackageVersion Include="NLog.Targets.OpenTelemetryHttp" Version="6.1.4" />
<PackageReference Include="NLog.Targets.OpenTelemetryHttp" />
paket add NLog.Targets.OpenTelemetryHttp --version 6.1.4
#r "nuget: NLog.Targets.OpenTelemetryHttp, 6.1.4"
#:package NLog.Targets.OpenTelemetryHttp@6.1.4
#addin nuget:?package=NLog.Targets.OpenTelemetryHttp&version=6.1.4
#tool nuget:?package=NLog.Targets.OpenTelemetryHttp&version=6.1.4
NLog.Targets.OpenTelemetryHttp
NLog OpenTelemetry target for exporting log events to an OpenTelemetry Collector or any OTLP/HTTP-compatible endpoint.
If having trouble with output, then check NLog InternalLogger for clues. See also Troubleshooting NLog.
See also:
- https://opentelemetry.io/docs/specs/otlp/#otlphttp
- https://opentelemetry.io/docs/specs/otel/protocol/exporter/
Register Extension
NLog will only recognize the type-alias OpenTelemetry when loading from an NLog.config file after registering the extension:
<extensions>
<add assembly="NLog.Targets.OpenTelemetryHttp"/>
</extensions>
Alternative - register from code using the fluent configuration API:
LogManager.Setup().SetupExtensions(ext => {
ext.RegisterTarget<NLog.Targets.OpenTelemetryHttpTarget>();
});
Configuration Example
Typical endpoint URL is http://localhost:4318/v1/logs.
<targets>
<target xsi:type="OpenTelemetry"
name="otel"
url="http://localhost:4318/v1/logs"
serviceName="MyApplication"
layout="${message}" />
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="otel" />
</rules>
Supports the standard OpenTelemetry environment variables as fallback defaults:
OTEL_EXPORTER_OTLP_ENDPOINTOTEL_EXPORTER_OTLP_LOGS_ENDPOINTOTEL_EXPORTER_OTLP_HEADERSOTEL_EXPORTER_OTLP_LOGS_HEADERSOTEL_EXPORTER_OTLP_COMPRESSIONOTEL_EXPORTER_OTLP_LOGS_COMPRESSIONOTEL_EXPORTER_OTLP_TIMEOUTOTEL_EXPORTER_OTLP_LOGS_TIMEOUTOTEL_SERVICE_NAMEOTEL_RESOURCE_ATTRIBUTES
Parameters
| Parameter | Default | Description |
|---|---|---|
| url | OTEL_EXPORTER_OTLP_ENDPOINT | OTLP/HTTP endpoint URL. Automatically append /v1/logs when missing. |
| layout | ${message} |
Layout used to populate the OpenTelemetry LogRecord.Body field. |
| traceId | ${activity:property=TraceId} |
Layout used to populate the OpenTelemetry LogRecord.TraceId field. |
| spanId | ${activity:property=SpanId} |
Layout used to populate the OpenTelemetry LogRecord.SpanId field. |
| includeEventProperties | true |
Includes NLog event properties as OpenTelemetry log attributes. |
| scopeName | NLog |
OpenTelemetry instrumentation scope name. |
| serviceName | ${appdomain:format=Friendly} |
OpenTelemetry service.name resource attribute. |
| serviceVersion | ${assembly-version:Default=} |
OpenTelemetry service.version resource attribute. |
| hostName | ${hostname} |
OpenTelemetry host.name resource attribute. |
| resourceAttributes | OTEL_RESOURCE_ATTRIBUTES | Additional OpenTelemetry resource attributes. |
| headers | OTEL_EXPORTER_OTLP_HEADERS | Additional HTTP headers. |
| Batching and Retry | Default | Description |
|---|---|---|
| batchSize | 200 |
Maximum number of log events to send in a single HTTP payload. |
| compress | None |
Optional payload compression. Supports None, GZip, and GZipFast. |
| maxPayloadSizeBytes | 40960 |
Max payload size before splitting into multiple HTTP requests. Remember BatchSize |
| taskDelayMilliseconds | 50 |
Delay before processing queued log events. Higher value can improve batching |
| taskTimeoutSeconds | 150 |
Maximum time in seconds before cancellation of HTTP request. |
| retryCount | 0 |
Number of retry attempts for failed write operations. |
| retryDelayMilliseconds | 2500 |
Initial delay before retry after failed request. Delay doubles for each retry. |
| queueLimit | 10000 |
Maximum number of pending log events allowed in the internal queue. |
| overflowAction | Discard |
Action taken when the internal request queue reaches its limit. |
| Network and Security | Default | Description |
|---|---|---|
| sendTimeoutSeconds | 30 HTTP request timeout in seconds. |
|
| sslCertificateFile | Client certificate file used for mutual TLS authentication. | |
| sslCertificatePassword | Password for the client certificate. | |
| proxyUrl | Proxy server URL. | |
| proxyUser | Proxy authentication username. | |
| proxyPassword | Proxy authentication password. |
Resource Attributes
Additional OpenTelemetry resource attributes can be configured using resourceAttribute entries:
<target xsi:type="OpenTelemetry" name="otel">
<resourceAttribute name="service.namespace" layout="Backend" />
<resourceAttribute name="deployment.environment" layout="Production" />
</target>
OpenTelemetry Environment Variables
The target automatically resolves standard OpenTelemetry environment variables when equivalent target properties have not been explicitly configured.
Endpoint
Order of precedence:
OTEL_EXPORTER_OTLP_LOGS_ENDPOINTOTEL_EXPORTER_OTLP_ENDPOINT
When OTEL_EXPORTER_OTLP_ENDPOINT is used, /v1/logs is automatically appended.
Headers
Order of precedence:
OTEL_EXPORTER_OTLP_LOGS_HEADERSOTEL_EXPORTER_OTLP_HEADERS
Example:
OTEL_EXPORTER_OTLP_HEADERS=api-key=my-secret-key
Compression
Order of precedence:
OTEL_EXPORTER_OTLP_LOGS_COMPRESSIONOTEL_EXPORTER_OTLP_COMPRESSION
Supported values:
gzipnone
Timeout
Order of precedence:
OTEL_EXPORTER_OTLP_LOGS_TIMEOUTOTEL_EXPORTER_OTLP_TIMEOUT
Timeout values are specified in milliseconds.
Service Name
OTEL_SERVICE_NAME
Overrides the service.name value from OTEL_RESOURCE_ATTRIBUTES.
Resource Attributes
OTEL_RESOURCE_ATTRIBUTES
Example:
OTEL_RESOURCE_ATTRIBUTES=service.namespace=Backend,deployment.environment=Production
The special attribute:
service.name
is automatically mapped to the serviceName property.
Client Certificate
Order of precedence:
OTEL_EXPORTER_OTLP_LOGS_CLIENT_CERTIFICATEOTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE
Used to configure mutual TLS authentication.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 is compatible. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.7.1
- NLog.Targets.HttpClient (>= 6.1.4)
- System.Diagnostics.DiagnosticSource (>= 8.0.0)
-
.NETStandard 2.0
- NLog.Targets.HttpClient (>= 6.1.4)
- System.Diagnostics.DiagnosticSource (>= 8.0.0)
-
.NETStandard 2.1
- NLog.Targets.HttpClient (>= 6.1.4)
- System.Diagnostics.DiagnosticSource (>= 8.0.0)
-
net10.0
- NLog.Targets.HttpClient (>= 6.1.4)
-
net8.0
- NLog.Targets.HttpClient (>= 6.1.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 6.1.4 | 128 | 7/26/2026 |
Changelog:
- Initial Release of OpenTelemetryHttpTarget.