8

I Net Core 5 I used to configure Serilog using the recommended approach:

public static void Main(string[] args) { Log.Logger = new LoggerConfiguration().WriteTo.Console().CreateLogger(); try { Log.Information("Starting up"); CreateHostBuilder(args).Build().Run(); } catch (Exception ex) { Log.Fatal(ex, "Application start-up failed"); } finally { Log.CloseAndFlush(); } } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .UseSerilog() .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }); 

How to configure Serilog in Net 6 using WebApplicationBuilder:

var builder = WebApplication.CreateBuilder(args); // Configure Serilog var app = builder.Build(); 

2 Answers 2

12

You can still use the same extension method on Host.

using Serilog; var builder = WebApplication.CreateBuilder(args); builder.Host.UseSerilog(); var app = builder.Build(); 
Sign up to request clarification or add additional context in comments.

Comments

7

To expand a bit on Kahbazi's answer:

If you want to configure with your appsetting.json files, you'll need to install Nuget package Serilog.AspNetCore and put this code in Program.cs:

using Serilog; var builder = WebApplication.CreateBuilder(args); builder.Host.UseSerilog((hostContext, services, configuration) => { configuration.ReadFrom.Configuration(hostContext.Configuration); }); // ... var app = builder.Build(); // ... app.Run(); 

and this code in appsettings.json:

{ "Serilog": { "Using": [ "Serilog.Sinks.Console" ], "MinimumLevel": "Verbose", "Enrich": [ "FromLogContext" ], "WriteTo": [ { "Name": "Console" } ] }, "YourCustomConfigKey1": "blahblah", "YourCustomConfigKey2": "asdf" } 

1 Comment

Thank you for that snippet in Program.cs, that was the missing piece for me.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.