NLog.Targets.OpenTelemetryHttp
6.1.4-Preview4
dotnet add package NLog.Targets.OpenTelemetryHttp --version 6.1.4-Preview4
NuGet\Install-Package NLog.Targets.OpenTelemetryHttp -Version 6.1.4-Preview4
<PackageReference Include="NLog.Targets.OpenTelemetryHttp" Version="6.1.4-Preview4" />
<PackageVersion Include="NLog.Targets.OpenTelemetryHttp" Version="6.1.4-Preview4" />
<PackageReference Include="NLog.Targets.OpenTelemetryHttp" />
paket add NLog.Targets.OpenTelemetryHttp --version 6.1.4-Preview4
#r "nuget: NLog.Targets.OpenTelemetryHttp, 6.1.4-Preview4"
#:package NLog.Targets.OpenTelemetryHttp@6.1.4-Preview4
#addin nuget:?package=NLog.Targets.OpenTelemetryHttp&version=6.1.4-Preview4&prerelease
#tool nuget:?package=NLog.Targets.OpenTelemetryHttp&version=6.1.4-Preview4&prerelease
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. |
sendTimeoutSeconds |
30 |
HTTP request timeout in seconds. |
| 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. |
| Authentication and Security | Default | Description |
|---|---|---|
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-Preview4)
- System.Diagnostics.DiagnosticSource (>= 8.0.0)
-
.NETStandard 2.0
- NLog.Targets.HttpClient (>= 6.1.4-Preview4)
- System.Diagnostics.DiagnosticSource (>= 8.0.0)
-
.NETStandard 2.1
- NLog.Targets.HttpClient (>= 6.1.4-Preview4)
- System.Diagnostics.DiagnosticSource (>= 8.0.0)
-
net10.0
- NLog.Targets.HttpClient (>= 6.1.4-Preview4)
-
net8.0
- NLog.Targets.HttpClient (>= 6.1.4-Preview4)
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-Preview4 | 31 | 7/13/2026 |
| 6.1.4-Preview3 | 41 | 7/9/2026 |
| 6.0.5-Preview2 | 51 | 6/22/2026 |
| 6.0.5-Preview1 | 39 | 6/20/2026 |
Changelog:
- Preview4 Release of OpenTelemetryHttpTarget.