Logging with Serilog and Elasticsearch in .NET Applications

Çağatay Uncu
Devops Türkiye☁️ 🐧 🐳 ☸️
4 min readJun 19, 2024

--

Hey there! Today, let’s dive into how you can use Serilog with Elasticsearch for logging in your .NET applications. This combination offers a powerful way to monitor application behavior, diagnose issues, and track performance.

Photo by John Torcasio on Unsplash

Setting Up Serilog with Elasticsearch

First things first, make sure you have the necessary packages installed via NuGet:

Install-Package Serilog
Install-Package Serilog.Sinks.Elasticsearch

Configuration with SerilogConfig

To manage Serilog settings such as log levels, Elasticsearch connection details, and authentication credentials, we’ll use a configuration class called SerilogConfig. This class can be loaded from a JSON file (serilog-config.json), making it easy to tweak settings without rebuilding your application.

public class SerilogConfig
{
public string MinimumLevel { get; set; }
public List<Uri>? Uris { get; set; }
public Uri? Uri { get; set; }
public string? Index { get; set; }
public string? Username { get; set; }
public string? Password { get; set; }
public string? ApiKeyAuthentication { get; set; }
public string? CertificateFingerprint { get; set; }
}

--

--