← Back to list

.Net 8 Serilog and Seq with docker

Merhaba bu yazımızda .Net 8 ile geliştirdiğimiz projemizde ve docker üzerinde çalışan projemizde Serilog entegrasyonu yapacağız. Serilog…

Kadir Guloglu · 2024-09-01 10:29 · 0 claps · 2.0 min read
#seq #serilog #net8 #logging #logging-and-monitoring
Open on Medium ↗
Wiki topics: ☁️ · DevOps & Cloud

.Net 8 Serilog and Seq with docker

Merhaba bu yazımızda .Net 8 ile geliştirdiğimiz projemizde ve docker üzerinde çalışan projemizde Serilog entegrasyonu yapacağız. Serilog ile örneklerimizde error ve information loglarımızı tek panel uzerinden görüp inceleyebileceğiz. UI için seq kullanacağız. seq bize serilog üzerinde tuttuğumuz logları görsel bir panel üzerinden incelememizi ve filtrelememizi sağlayacaktır. İlk önce docker üzerinde bir seq containeri run etmemiz gerekiyor. İmage için https://hub.docker.com/r/datalust/seq bu adresi inceleyebilirsiniz. Microservice projelerimiz için bir services compose yml dosyası ile seq container’ı oluşturabiliriz.

Docker seq

Docker seq

Seq container’ının 80 portunu port forward ile 5342 portunda dışarıya erişim veriyoruz. http://localhost:5342 girdikten sonra seq uı’larına erişimizi sağlayabileceğiz.

SEQ_FIRSTRUN_ADMINPASSWORDHASH değeri default admin kullanıcısının parolasını tanımlamak için kullanılır. Bu parolayı oluşturmak için $(echo ‘<password>’ | docker run — rm -i datalust/seq config hash) komutunu terminal üzerinde çalıştırabilirsiniz.

SEQ UI

SEQ UI

Görselde serilog ile logladığımız loglarımızı seq uı üzerinde tek ekranda görebilir veya filtrelebiliriz.

.Net 8 Entegrasyonu

Projemize öncelikle aşşağıdaki paketlerin kurulumunu yapacağız. dotnet add package Serilog.AspNetCore dotnet add package Serilog.Sinks.Seq

İlk configurasyonumuzu program.cs dosyamızın Main methodunda yapacağız.

Serilog and seq Main method program.cs

Serilog and seq Main method program.cs

Filter.ByExcluding methodu ile istenilen hataların serilog üzerine atılmaması için ignore edebiliriz. WriteTo.Seq methodlu ile seq containerimizin host adresini vereceğiz. Serilog Seq’in apilerini kullanarak loglarımızın seq üzerine kayıt işlemini yapacaktır. Buraya http://xxx-seq-host:5341 adresini yazabilirsiniz. Unutmayın aynı network üzerinde çalışarak farklı container’lar birbirine erişebilir. Diğer ayarlar için https://serilog.net/ adresinden inceleyebilirsiniz.

Serilog CreateHostBuilder method program.cs

Serilog CreateHostBuilder method program.cs

ConfigureLogging methodunun ClearProviders methodu loglama sağlayıcılarını temizler, yani uygulama sadece bu kod çalıştırıldığında başka bir loglama sağlayıcısı eklenmedikçe hiçbir yere log yazmayacaktır.

UseSerilog methodu ile loglama alt yapısı olarak .Net altyapısına serilogu ekler ve ILogger sınıfının inject edildiği durumda loglar serilog üzerine yazılır.

Bu ayları yaptıktan sonra artık Microsoft.Extensions.Logging kütüphanesindeki ILogger interfacesini inject ettiğimizde artık loglar serilog üzerine yazılacaktır.

Example Serilog Controller

Example Serilog Controller

Yukarıdaki örnekte ILogger inject edildikten sonra LogInformation ve LogError methodları ile loglarımızı serilog üzerine yazıyoruz. Bu loglarıda serilog paneli üzerinden kolaylıkla inceleyebilirsiniz.

Happy Coding :)


메타데이터
post_id
2ac8b1fe1db7
slug
net-8-serilog-and-seq-with-docker-2ac8b1fe1db7
url
https://medium.com/@kadirguloglu1/net-8-serilog-and-seq-with-docker-2ac8b1fe1db7
canonical_url
https://medium.com/@kadirguloglu1/net-8-serilog-and-seq-with-docker-2ac8b1fe1db7
author_url
https://medium.com/@kadirguloglu1
status
ok
fetched_at
2026-06-27 18:20:27