DEV Community

Sardar Mudassar Ali Khan
Sardar Mudassar Ali Khan

Posted on

Serilog Implementation in Asp.net Core

Serilog is a popular logging framework in the .NET ecosystem. It provides a flexible and efficient way to capture and store log events in various formats and sinks. To implement Serilog in an ASP.NET Core application, you'll need to follow a few steps:

Step 1: Install the required packages
You'll need to install the following NuGet packages to use Serilog in your ASP.NET Core project:

dotnet add package Serilog
dotnet add package Serilog.AspNetCore
dotnet add package Serilog.Sinks.Console
dotnet add package Serilog.Sinks.File
Enter fullscreen mode Exit fullscreen mode

Step 2: Configure Serilog in your ASP.NET Core application
In the ConfigureServices method of your Startup class, add the Serilog configuration. You can configure Serilog to log to various sinks such as the console, file, or database. Here's an example that logs to both the console and a rolling file:

using Serilog;

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        // Add Serilog
        Log.Logger = new LoggerConfiguration()
            .WriteTo.Console()
            .WriteTo.File("log.txt", rollingInterval: RollingInterval.Day)
            .CreateLogger();

        // Other service configurations
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        // Other app configurations

        // Add Serilog middleware
        app.UseSerilogRequestLogging();
    }
}
Enter fullscreen mode Exit fullscreen mode

Step 3: Use Serilog in your application
Once you've configured Serilog, you can use it to log messages throughout your application. You can inject the ILogger<T> interface into your classes and use it to log events. Here's an example of logging a message in a controller:

using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;

public class HomeController : Controller
{
    private readonly ILogger<HomeController> _logger;

    public HomeController(ILogger<HomeController> logger)
    {
        _logger = logger;
    }

    public IActionResult Index()
    {
        _logger.LogInformation("Index page visited");

        return View();
    }
}
Enter fullscreen mode Exit fullscreen mode

That's it! You've implemented Serilog in your ASP.NET Core application. You can customize the Serilog configuration based on your specific requirements, such as using different log sinks or enriching log events with additional information. Refer to the Serilog documentation for more advanced configuration options and features.

Top comments (0)