⚠ Deprecated: Legacy
Tools for working with logging in ASP.NET Core
$ dotnet add package NetChris.Logging.AspNetCoreProgram.cs file should be configured thusly:using NetChris.Logging.AspNetCore.Extensions;
using Serilog;
// See https://nblumhardt.com/2020/10/bootstrap-logger/
Log.Logger = new LoggerConfiguration()
.WriteTo.Console()
.CreateBootstrapLogger();
try
{
var builder = WebApplication.CreateBuilder(args);
builder.Host.AddNetChrisLogging();
// SERVICES SETUP
var app = builder.Build();
app.UseNetChrisLogging();
// REMAINDER OF APP SETUP
app.Run();
}
catch (Exception ex)
{
Log.Fatal(ex, "An unhandled exception occured during bootstrapping");
}
finally
{
Log.CloseAndFlush();
}
Program.cs and Setup.cs, it'll look something like this:// Program.cs
public static void Main(string[] args)
{
// See https://nblumhardt.com/2020/10/bootstrap-logger/
Log.Logger = new LoggerConfiguration()
.WriteTo.Console()
.CreateBootstrapLogger();
try
{
CreateHostBuilder(args).Build().Run();
}
catch (Exception ex)
{
Log.Fatal(ex, "An unhandled exception occured during bootstrapping");
}
finally
{
Log.CloseAndFlush();
}
}
public static IHostBuilder CreateHostBuilder(string[] args)
{
var hostBuilder =
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); })
.AddNetChrisLogging();
return hostBuilder;
}
// Startup.cs
public void Configure(IApplicationBuilder app)
{
app.UseMiddleware<RequestLogScopeMiddleware>();
}
In order for logging to go to Seq, you'll need some configuration keys in environment variables:
Secrets:seq:serverUrlSecrets:seq:apiKey