Net.CrossCutting.RequestLogger
1.0.4
dotnet add package Net.CrossCutting.RequestLogger --version 1.0.4
NuGet\Install-Package Net.CrossCutting.RequestLogger -Version 1.0.4
<PackageReference Include="Net.CrossCutting.RequestLogger" Version="1.0.4" />
paket add Net.CrossCutting.RequestLogger --version 1.0.4
#r "nuget: Net.CrossCutting.RequestLogger, 1.0.4"
// Install Net.CrossCutting.RequestLogger as a Cake Addin
#addin nuget:?package=Net.CrossCutting.RequestLogger&version=1.0.4
// Install Net.CrossCutting.RequestLogger as a Cake Tool
#tool nuget:?package=Net.CrossCutting.RequestLogger&version=1.0.4
Net.CrossCutting.RequestLogger
Handle Cross-Cutting conserns via the power of Asp.net-core middelwares.
RequestLogger make it possible to log each http request and it related response to multiple data source (DB or file for example).
At the beginning you need to config RequestLogger, this is requierd because we need to fetch some dynamic settings at start point. To achieve that add a new json properties named RequestLog to your appseting.josn file.
{
"RequestLogger": {
"Status": true,
//file,sqlserver
"Provider": "sqlserver",
"FilePath": "logs/requests/reqlog-.txt",
"SqlServerConnectionString": "Data Source=SQL-SRV\\SQL2017;Initial Catalog=Logs;User ID=sa;Password=admin",
"SqlServerTableName": "RequestLog"
}
}
Then edit your startup and ConfigureServices methods (composition root of your Dependency Injection Startup.cs file by default) as below.
private RequestLogSetting requestLogSetting;
public Startup(IConfiguration configuration)
{
//...
requestLogSetting = Configuration.GetSection("RequestLogger").Get<RequestLogSetting>();
//...
}
public void ConfigureServices(IServiceCollection services)
{
//...
services.AddSingleton<IRequestLogSetting>(requestLogSetting);
//...
}
Finally edit your Configure method. This tell .net core runtime to inject RequestLogger middelware to its pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
//Sample 1: Log all recieved requests
appBuilder.UseRequestLoggerMiddleware();
//...
}
}
Also you can filter the routing of middelware as you want like the following example. In this example the middelware logs all recieved requests when incomming http requests started with '/api'.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseWhen(context => context.Request.Path.StartsWithSegments("/api"), appBuilder =>
{
appBuilder.UseRequestLoggerMiddleware();
});
//...
}
Product | Versions 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 was computed. 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. |
.NET Core | netcoreapp2.1 is compatible. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
-
.NETCoreApp 2.1
- Microsoft.AspNetCore (>= 2.1.4)
- Microsoft.AspNetCore.Mvc (>= 2.1.3)
- Microsoft.Extensions.Logging (>= 2.1.1)
- Serilog (>= 2.7.1)
- Serilog.Formatting.Compact (>= 1.0.0)
- Serilog.Sinks.File (>= 4.0.0)
- Serilog.Sinks.MSSqlServer (>= 5.1.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.