/serilog-sinks-azurequeuestorage

Azure Queue Storage sink for Serilog

Primary LanguageC#MIT LicenseMIT

Serilog.Sinks.AzureQueueStorage Build status NuGet version

Writes to a queue in Windows Azure Queue Storage.

Package - Serilog.Sinks.AzureQueueStorage

Modeled After - Serilog.Sinks.AzureTableStorage

Example Use Case - Log messages to an Azure storage queue and process asynchronously using an Azure Function.

var storage = CloudStorageAccount.FromConfigurationSetting("MyStorage");

var log = new LoggerConfiguration()
    .WriteTo.AzureQueueStorage(storage)
    .CreateLogger();

JSON configuration

It is possible to configure the sink using Serilog.Settings.Configuration by specifying the queue name and connection string in appsettings.json:

"Serilog": {
  "WriteTo": [
    {"Name": "AzureQueueStorage", "Args": {"storageQueueName": "", "connectionString": ""}}
  ]
}

JSON configuration must be enabled using ReadFrom.Configuration(); see the documentation of the JSON configuration package for details.

XML <appSettings> configuration

To use the file sink with the Serilog.Settings.AppSettings package, first install that package if you haven't already done so:

Install-Package Serilog.Settings.AppSettings

Instead of configuring the logger in code, call ReadFrom.AppSettings():

var log = new LoggerConfiguration()
    .ReadFrom.AppSettings()
    .CreateLogger();

In your application's App.config or Web.config file, specify the file sink assembly and required path format under the <appSettings> node:

<configuration>
  <appSettings>
    <add key="serilog:using:AzureQueueStorage" value="Serilog.Sinks.AzureQueueStorage" />
    <add key="serilog:write-to:AzureQueueStorage.connectionString" value="DefaultEndpointsProtocol=https;AccountName=ACCOUNT_NAME;AccountKey=KEY;EndpointSuffix=core.windows.net" />
    <add key="serilog:write-to:AzureQueueStorage.storageQueueName" value="YOUR_STORAGE_QUEUE_NAME" />