A third-party, open-source structured logging library is called Serilog. In addition to other places, it offers diagnostic logging to files and the console. It is portable between recent.NET platforms, straightforward to set up, and provides a clean API. Serilog has become a well-liked logging library in the ASP.NET Core framework because of its adaptability, extensibility, and simplicity.
Here are steps by steps to setup Serilog in your ASP.NET Core 7 application:
1. Install the Serilog NuGet Package
Install the following Nuget package, either via package manager console,
Install-Package Serilog.AspNetCore
Or, via Nuget Package manager.
2. Register Serilog
Next, open program.cs
and register serilog.
// Add services to the container. builder.Host.UseSerilog((context, configuration) => configuration.ReadFrom.Configuration(context.Configuration));
Also, register the pipeline.
app.UseSerilogRequestLogging();
3. Configure the settings in appsetting.json
Open appsetting.json
file and add following code.
"Serilog": { "Using": [ "Serilog.Sinks.File", "Serilog.Sinks.Console" ], "MinimumLevel": { "Default": "Information", "Override": { "Microsoft": "Warning", "System": "Warning" } }, "WriteTo": [ { "Name": "Console" }, { "Name": "File", "Args": { "path": "/logs/log-.txt", "rollOnFileSizeLimit": true, "formatter": "Serilog.Formatting.Compact.CompactJsonFormatter,Serilog.Formatting.Compact", "rollingInterval": "Day" } } ], "Enrich": [ "FromLogContext", "WithThreadId", "WithMachineName" ]
Here, we specify that logs should be added to both the dotnet console and a .txt
file that will be generated in the c:logs folder. Where to log is specified in the line "Using": ["Serilog.Sinks.File", "Serilog.Sinks.Console"]
.
You can also write to .json
in place of .txt
. Change the file extension in the code above to do that.
4. Test it!
Open your controller and start logging. Like,
[HttpGet] [EnableQuery] public IEnumerable<WeatherForecast> Get() { _logger.LogInformation("WeatherForecast get method Starting."); return Enumerable.Range(1, 5).Select(index => new WeatherForecast { Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)), TemperatureC = Random.Shared.Next(-20, 55), Summary = Summaries[Random.Shared.Next(Summaries.Length)] }) .ToArray(); }
Make sure, logger in injected in your controller. Like,
private readonly ILogger<WeatherForecastController> _logger; public WeatherForecastController(ILogger<WeatherForecastController> logger) { _logger = logger; }
Run your app now and you should see these.
Conclusion
Now, you have learned how to setup Serilog in Asp.net core 7. We will back with other interesting tutorial.
Are you looking for an affordable and reliable Asp.net core hosting solution?
Get your ASP.NET hosting as low as $1.00/month with ASPHostPortal. Our fully featured hosting already includes
- Easy setup
- 24/7/365 technical support
- Top level speed and security
- Super cache server performance to increase your website speed
- Top 9 data centers across the world that you can choose.
Javier is Content Specialist and also .NET developer. He writes helpful guides and articles, assist with other marketing and .NET community work