NLog.Extensions.AzureServiceBus 4.7.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package NLog.Extensions.AzureServiceBus --version 4.7.0
                    
NuGet\Install-Package NLog.Extensions.AzureServiceBus -Version 4.7.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="NLog.Extensions.AzureServiceBus" Version="4.7.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="NLog.Extensions.AzureServiceBus" Version="4.7.0" />
                    
Directory.Packages.props
<PackageReference Include="NLog.Extensions.AzureServiceBus" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add NLog.Extensions.AzureServiceBus --version 4.7.0
                    
#r "nuget: NLog.Extensions.AzureServiceBus, 4.7.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package NLog.Extensions.AzureServiceBus@4.7.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=NLog.Extensions.AzureServiceBus&version=4.7.0
                    
Install as a Cake Addin
#tool nuget:?package=NLog.Extensions.AzureServiceBus&version=4.7.0
                    
Install as a Cake Tool

Azure ServiceBus

Package Name NuGet Description
NLog.Extensions.AzureServiceBus NuGet Azure Service Bus

ServiceBus Configuration

Syntax

<extensions>
  <add assembly="NLog.Extensions.AzureServiceBus" /> 
</extensions>

<targets>
  <target xsi:type="AzureServiceBus"
          name="String"
          layout="Layout"
          connectionString="Layout"
          queueName="Layout"
          topicName="Layout"
          sessionId="Layout"
          partitionKey="Layout"
          subject="Layout"
          contentType="Layout"
          messageId="Layout"
          correlationId="Layout">
	    <messageProperty name="level" layout="${level}" />
	    <messageProperty name="exception" layout="${exception:format=shorttype}" includeEmptyValue="false" />
	    <layout type="JsonLayout" includeAllProperties="true">
		    <attribute name="time" layout="${longdate}" />
		    <attribute name="message" layout="${message}" />
		    <attribute name="threadid" layout="${threadid}" />
		    <attribute name="exception" layout="${exception:format=tostring}" />
	    </layout>
  </target>
</targets>

General Options

name - Name of the target.

connectionString - Azure storage connection string. Layout Required unless using ServiceUri.

serviceUri - Alternative to ConnectionString, where Managed Identiy is applied from DefaultAzureCredential.

queueName - QueueName for multiple producers single consumer. Layout

topicName - TopicName for multiple producers and multiple subscribers. Layout

sessionId - SessionId-Key which Service Bus uses to generate PartitionId-hash. Layout

partitionKey - Partition-Key which Service Bus uses to generate PartitionId-hash. Layout

subject - Service Bus Message Subject to be used as label for the message. Layout

layout - Service Bus Message Body to be rendered and encoded as UTF8. Layout Required.

contentType - Service Bus Message Body ContentType. Layout. Ex. application/json

messageId - Service Bus Message MessageId. Layout

correlationId - Service Bus Message Correlationid. Layout

timeToLiveSeconds - Default Time-To-Live (TTL) for ServiceBus messages in seconds (Optional)

timeToLiveDays - Default Time-To-Live (TTL) for ServiceBus messages in days (Optional)

useWebSockets - Enable AmqpWebSockets. Ex. true/false (optional)

customEndpointAddress - Custom endpoint address that can be used when establishing the connection (optional)

eventProducerIdentifier - A unique name used to identify the event producer. If null or empty, a GUID will be used as the identifier (optional)

Authentication Options

managedIdentityClientId - Sets ManagedIdentityClientId on DefaultAzureCredentialOptions. Requires serviceUri.

managedIdentityResourceId - resourceId for ManagedIdentityResourceId on DefaultAzureCredentialOptions, do not use together with ManagedIdentityClientId. Requires serviceUri.

tenantIdentity - tenantId for DefaultAzureCredentialOptions. Requires serviceUri.

sharedAccessSignature - Access signature for AzureSasCredential authentication. Requires serviceUri.

accountName - accountName for AzureNamedKeyCredential authentication. Requires serviceUri and accessKey.

accessKey - accountKey for AzureNamedKeyCredential authentication. Requires serviceUri and accountName.

clientAuthId - clientId for ClientSecretCredential authentication. Requires serviceUri, tenantIdentity and clientAuthSecret.

clientAuthSecret - clientSecret for ClientSecretCredential authentication. Requires serviceUri,tenantIdentity and clientAuthId.

Proxy Options

noProxy - Bypasses any system proxy and proxy in ProxyAddress when set to true. Requires useWebSockets = true.

proxyAddress - Address of the proxy server to use (e.g. http://proxyserver:8080). Requires useWebSockets = true.

proxyLogin - Login to use for the proxy server. Requires proxyPassword. Requires useWebSockets = true.

proxyPassword - Password to use for the proxy server. Requires proxyLogin. Requires useWebSockets = true.

useDefaultCredentialsForProxy - Uses the default credentials (System.Net.CredentialCache.DefaultCredentials) for the proxy server. Take precedence over proxyLogin and proxyPassword when set to true. Requires useWebSockets = true.

Batching Policy

maxBatchSizeBytes - Max size of a single batch in bytes Integer (Default=256*1024)

batchSize - Number of LogEvents to send in a single batch (Default=100)

taskDelayMilliseconds - Artificial delay before sending to optimize for batching (Default=200 ms)

queueLimit - Number of pending LogEvents to have in memory queue, that are waiting to be sent (Default=10000)

overflowAction - Action to take when reaching limit of in memory queue (Default=Discard)

Retry Policy

taskTimeoutSeconds - How many seconds a Task is allowed to run before it is cancelled (Default 150 secs)

retryDelayMilliseconds - How many milliseconds to wait before next retry (Default 500ms, and will be doubled on each retry).

retryCount - How many attempts to retry the same Task, before it is aborted (Default 0)

Azure Identity Environment

When using ServiceUri (Instead of ConnectionString), then DefaultAzureCredential is used for Azure Identity which supports environment variables:

  • AZURE_CLIENT_ID - For ManagedIdentityClientId / WorkloadIdentityClientId
  • AZURE_TENANT_ID - For TenantId

See also: Set up Your Environment for Authentication

Azure ConnectionString

NLog Layout makes it possible to retrieve settings from many locations.

Lookup ConnectionString from appsettings.json

connectionString="${configsetting:ConnectionStrings.AzureBus}"

  • Example appsettings.json on .NetCore:
  {
    "ConnectionStrings": {
      "AzureBus": "UseDevelopmentStorage=true;"
    }
  }
Lookup ConnectionString from app.config

connectionString="${appsetting:ConnectionStrings.AzureBus}"

  • Example app.config on .NetFramework:
   <configuration>
      <connectionStrings>
        <add name="AzureBus" connectionString="UseDevelopmentStorage=true;"/>
      </connectionStrings>
   </configuration>
Lookup ConnectionString from environment-variable

connectionString="${environment:AZURE_STORAGE_CONNECTION_STRING}"

Lookup ConnectionString from NLog GlobalDiagnosticsContext (GDC)

connectionString="${gdc:AzureBusConnectionString}"

  • Example code for setting GDC-value:
  NLog.GlobalDiagnosticsContext.Set("AzureBusConnectionString", "UseDevelopmentStorage=true;");
Product 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 was computed.  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 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
4.7.1 23 11/23/2025
4.7.0 263 11/13/2025
4.6.0 961 7/13/2025
4.5.0 815 6/30/2025
4.4.2 991 3/5/2025
4.4.1 15,992 6/24/2024
4.4.0 3,529 1/29/2024
4.3.1 2,222 10/24/2023
4.3.0 591 9/15/2023
4.2.0 2,218 5/23/2023
4.1.0 1,235 2/9/2023
4.0.0 3,842 11/10/2022
3.2.0 2,259 10/5/2022
3.1.0 20,044 3/28/2022
3.0.0 2,640 9/24/2021
2.3.0 887 4/29/2021
2.2.0 631 4/16/2021
2.1.0 749 12/3/2020
2.0.0 1,062 11/13/2020

- Added support for Proxy-options: ProxyAddress, ProxyLogin, ProxyPassword, NoProxy, UseDefaultCredentialsForProxy
- Added support for Authentication-options: ClientAuthId + ClientAuthSecret
- Added support for EventProducerIdentifier-option
- Updated Azure.Identity to ver 1.16.0 (Bug fixes)
- Enabled XML documentation file generation
- Added README.md to nuget-package
     
Docs: https://github.com/JDetmar/NLog.Extensions.AzureStorage/blob/master/src/NLog.Extensions.AzureServiceBus/README.md