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
<PackageReference Include="Serilog.Sinks.AspNetCore.App.SignalR" Version="1.2.1" />
paket add Serilog.Sinks.AspNetCore.App.SignalR --version 1.2.1
#r "nuget: Serilog.Sinks.AspNetCore.App.SignalR, 1.2.1"
// 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
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 fromMicrosoft.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 | Versions 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. |
-
net8.0
- Serilog (>= 3.1.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.