MCS.Logging.DotNetCore
1.0.1
See the version list below for details.
dotnet add package MCS.Logging.DotNetCore --version 1.0.1
NuGet\Install-Package MCS.Logging.DotNetCore -Version 1.0.1
<PackageReference Include="MCS.Logging.DotNetCore" Version="1.0.1" />
paket add MCS.Logging.DotNetCore --version 1.0.1
#r "nuget: MCS.Logging.DotNetCore, 1.0.1"
// Install MCS.Logging.DotNetCore as a Cake Addin
#addin nuget:?package=MCS.Logging.DotNetCore&version=1.0.1
// Install MCS.Logging.DotNetCore as a Cake Tool
#tool nuget:?package=MCS.Logging.DotNetCore&version=1.0.1
MCS.Logging.DotNetCore
Simple global logging library for Serilog in .Net Core
Setting Up
First grab the nuget package
File Logging
Then you'll need a config section. still iterating...will get back
General
McsLogDestinationTypes
File Logging
LogFolderLocation
SQL Logging
LogConnection LogBatchSize
Helper Class
For better control over your logging you'll want to build a helper class. There are a number of ways to write this, but here are a few examples....pending
General Logging - WebHelper
More examples forthcoming.
How To Actually Log Sh*...stuff
Now for the good stuff, it's time to hook all the pipes together. In your startup class you'll need to register a global exception handler.
For an API this is pretty simple. Unless you for some reason need to log performance or usage, but we'll get to that.
Somthing along these lines should make it's way into your Startup class's Configure method.
app.UseExceptionHandler(exc =>
{
exc.Run(async context =>
{
context.Response.StatusCode = 500;
context.Response.ContentType = "application/json";
var errorCtx = context.Features.Get<IExceptionHandlerFeature>();
if (errorCtx != null)
{
var ex = errorCtx.Error;
McsWebHelper.LogWebError("Product Name", "Api Name", ex, context);
var errorId = Activity.Current?.Id ?? context.TraceIdentifier;
var jsonResponse = JsonConvert.SerializeObject(new McsErrorResponse
{
ErrorId = errorId,
//Your deployment environment and intended use will impact what you put here
Message = "Some kind of error happened in the API."
});
await context.Response.WriteAsync(jsonResponse, Encoding.UTF8);
}
});
});
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 | netcoreapp3.0 is compatible. netcoreapp3.1 was computed. |
-
.NETCoreApp 3.0
- Microsoft.AspNetCore (>= 2.2.0)
- Microsoft.AspNetCore.Mvc.Core (>= 2.2.5)
- Serilog (>= 2.9.0)
- Serilog.Sinks.File (>= 4.1.0)
- Serilog.Sinks.MSSqlServer (>= 5.1.3)
- System.Data.SqlClient (>= 4.7.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
1.0.1
- Fixed some loose ends. May still have issues t be worked out. Work in progress.
- Config will now be a section in appsettings
- The logger is now intended to be injected, more in line with the global logging patterns in .Net Core
1.0.0 - New Package