Serilog.Sinks.AspNetCore.App.SignalR 1.2.1

dotnet add package Serilog.Sinks.AspNetCore.App.SignalR --version 1.2.1                
NuGet\Install-Package Serilog.Sinks.AspNetCore.App.SignalR -Version 1.2.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="Serilog.Sinks.AspNetCore.App.SignalR" Version="1.2.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Serilog.Sinks.AspNetCore.App.SignalR --version 1.2.1                
#r "nuget: Serilog.Sinks.AspNetCore.App.SignalR, 1.2.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.
// Install Serilog.Sinks.AspNetCore.App.SignalR as a Cake Addin
#addin nuget:?package=Serilog.Sinks.AspNetCore.App.SignalR&version=1.2.1

// Install Serilog.Sinks.AspNetCore.App.SignalR as a Cake Tool
#tool nuget:?package=Serilog.Sinks.AspNetCore.App.SignalR&version=1.2.1                

Serilog.Sinks.AspNetCore.App.SignalR

NuGet Version NuGet Downloads

Quickstart

A short and sweet overview of how to register Serilog.Sinks.AspNetCore.App.SignalR to help you get up and running. There are a few methods of dependency injection registration. You should choose the one appropriate for your situation and how much flexibility you might require.

Register with default hub

This is by far the simplest way to integrate Serilog with SignalR. Add a call to the IServiceCollection extension method AddDefaultSerilogHub. This will register the DefaultSerilogHub from this package.

// Register the default SignalR Hub for Serilog.
builder.Services.AddDefaultSerilogHub();

[!NOTE] The DefaultSerilogHub is just an empty class that inherits from Microsoft.AspNetCore.SignalR.Hub.

Then, configure the logger by passing the method name that the SignalR client is listening to.

builder.Services.AddSerilog((serviceProvider, loggerConfiguration) => 
    loggerConfiguration.WriteTo.SignalR(
        serviceProvider, 
        "ReceiveEvent"
    ));

Finally, call the WebApplication extension method MapDefaultSerilogHub and specify the route for the DefaultSerilogHub.

app.MapDefaultSerilogHub("/sample");

A client can now listen on the Hub route for the specified method where the formatted message will be sent.

hub.on("ReceiveEvent", (message) => {...});

Additionally, the Serilog LogEvent is also passed as an optional second parameter.

hub.on("ReceiveEvent", (message, logEvent) => {...});

Register with user defined hub

Call the IServiceCollection extension method AddSerilogHub to register a SignalR Hub with the Serilog sink.

[!IMPORTANT] This step is necessary in order to prevent circular dependencies caused during logger initialization.

builder.Services.AddSerilogHub<SampleHub>();

Call AddSerilog and configure the Hub in which events should be logged to. Make sure to pass the IServiceProvider down to the SignalR sink. The delegate provides the IHubContext for the Hub specified in the generic type parameter of the SignalR sink and the formatted Serilog event message.

builder.Services.AddSerilog(
    (serviceProvider, loggerConfiguration) => 
        loggerConfiguration.WriteTo.SignalR<SampleHub>(
            serviceProvider, 
            (context, message, logEvent) => 
                context.Clients.All.SendAsync("ReceiveEvent", message, logEvent)
        ));

Lastly, make sure to register the Hub.

app.MapHub<SampleHub>("/sample");
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. 
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.2.1 69 11/20/2024
1.2.0 1,256 6/15/2024
1.1.1 121 6/7/2024
1.1.0 134 6/6/2024
1.0.0 138 6/6/2024
0.0.2 114 6/1/2024
0.0.1 124 6/1/2024