Serilog for .NET Core applications is a popular and powerful logging library that supports logging to various outputs such as files, consoles and databases. It also integrates well with .NET Core’s built-in logging features.

To log to a database, you can use Serilog.Sinks.MSSqlServer sink if you are using MS SQL Server or Serilog.Sinks.MySql sink for MySQL.

Here is a step-by-step guide on how to install it:

  1. Install the required NuGet packages:
    * Serilog.AspNetCore
    * Serilog.Sinks.MSSqlServer (or another sink based on your database)
  2. In your Program.cs file, configure Serilog in the CreateHostBuilder method:
public static IHostBuilder CreateHostBuilder(string[] args) =>
        .UseSerilog((hostingContext, loggerConfiguration) => 
                    connectionString: "<YourConnectionString>",
                    tableName: "Logs",
                    autoCreateSqlTable: true);
        .ConfigureWebHostDefaults(webBuilder =>

3. Add the following configuration to your appsettings.json file:

"Serilog": {
    "MinimumLevel": {
        "Default": "Information",
        "Override": {
            "Microsoft": "Warning",
            "System": "Warning"

4. You can now inject and use ILogger in your classes to log events:

public class MyAnotherService
    private readonly ILogger<MyAnotherService> _logger;

    public MyAnotherService (ILogger<MyAnotherService> logger)
        _logger = logger;

    public void SomeMethod()
        _logger.LogInformation("This is an information log");

Remember to replace with your actual database connection string. autoCreateSqlTable: true will automatically create a table for logs in your database if it does not already exist.