Vestfold.Extensions.Logging 1.0.1

Prefix Reserved
dotnet add package Vestfold.Extensions.Logging --version 1.0.1
                    
NuGet\Install-Package Vestfold.Extensions.Logging -Version 1.0.1
                    
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="Vestfold.Extensions.Logging" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Vestfold.Extensions.Logging" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="Vestfold.Extensions.Logging" />
                    
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 Vestfold.Extensions.Logging --version 1.0.1
                    
#r "nuget: Vestfold.Extensions.Logging, 1.0.1"
                    
#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.
#addin nuget:?package=Vestfold.Extensions.Logging&version=1.0.1
                    
Install Vestfold.Extensions.Logging as a Cake Addin
#tool nuget:?package=Vestfold.Extensions.Logging&version=1.0.1
                    
Install Vestfold.Extensions.Logging as a Cake Tool

NuGet Version NuGet Downloads

Vestfold.Extensions.Logging

Contains builder extensions for configuring logging in a dotnet core application.

Usage in an Azure Function / Azure Web App

Azure App Services does not allow periods (.) in the app setting names.<br /> As a workaround, use an underscore (_) instead of a period (.) in the app setting names, and it will be handled correctly in the code.<br /> If an app setting contains a period, the period is replaced with an underscore (_) in the container.

Add the following to your local.settings.json file:

All properties (except AzureWebJobsStorage and FUNCTIONS_WORKER_RUNTIME which is Azure specific) are optional.

Semi optional properties:

  • AppName: If not set, the assembly name will be used as AppName property in logs
  • Version: If not set, the assembly version will be used as Version property in logs
{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated",
    "AppName": "Name of your application, used as a property in the logs",
    "BetterStack_SourceToken": "Your BetterStack source token",
    "BetterStack_Endpoint": "https://foo.betterstackdata.com",
    "BetterStack_MinimumLevel": "Information",
    "MicrosoftTeams_WebhookUrl": "microsoft teams webhook url | microsoft power automate flow url if UseWorkflows is set to true",
    "MicrosoftTeams_UseWorkflows": "true if Microsoft Power Automate flow is used, false if Microsoft Teams webhook is used (default is true)",
    "MicrosoftTeams_TitleTemplate": "The title template of the card",
    "MicrosoftTeams_MinimumLevel": "Warning",
    "Version": "1.0.0"
  }
}

Override minimum levels for certain namespaces

If you want to override a namespace which contains a period (.), for instance Microsoft.Hosting, you need to use an underscore (_) since Azure App Services does not allow periods (.) in the app setting names.

Example: Add an override for everything in the Microsoft.Hosting namespace to log from Warning and higher

{
  "Values": {
    "Serilog_MinimumLevel_Override_Microsoft_Hosting": "Warning"
  }
}

Usage outside Azure

Add the following to your appsettings.json file:

All properties are optional.

Semi optional properties:

  • AppName: If not set, the assembly name will be used as AppName property in logs
  • Version: If not set, the assembly version will be used as Version property in logs
{
  "AppName": "Name of your application, used as a property in the logs",
  "BetterStack": {
    "SourceToken": "Your BetterStack source token",
    "Endpoint": "https://foo.betterstackdata.com",
    "MinimumLevel": "Information"
  },
  "MicrosoftTeams": {
    "WebhookUrl": "microsoft teams webhook url | microsoft power automate flow url if UseWorkflows is set to true",
    "UseWorkflows": "true if Microsoft Power Automate flow is used, false if Microsoft Teams webhook is used (default is true)",
    "TitleTemplate": "The title template of the card",
    "MinimumLevel": "Warning"
  },
  "Version": "1.0.0"
}

Override minimum levels for certain namespaces

Example: Add an override for everything in the Microsoft.Hosting namespace to log from Warning and higher

{
  "Serilog": {
    "MinimumLevel": {
      "Override": {
        "Microsoft.Hosting": "Warning"
      }
    }
  }
}

Setting up logging for an Azure Function / Azure Web App

var builder = FunctionsApplication.CreateBuilder(args);
builder.ConfigureFunctionsWebApplication();
builder.Logging.AddVestfoldLogging();
builder.Build().Run();

Setting up logging for a HostBuilder (Console app, ClassLibrary, etc.)

public static async Task Main(string[] args)
{
    await Host.CreateDefaultBuilder(args)
        .ConfigureLogging(builder => builder.AddVestfoldLogging())
        .Build()
        .RunAsync();

    await Serilog.Log.CloseAndFlushAsync();
}

Setting up logging for a WebApplicationBuilder (WebAPI, Blazor, etc.)

var builder = WebApplication.CreateBuilder(args);
builder.Logging.AddVestfoldLogging();

var app = builder.Build();
Product Compatible and additional computed target framework versions.
.NET 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. 
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
1.0.1 34 5/24/2025
1.0.0 62 5/23/2025