Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
Series
.NET Core Web API
36
Angular
31
JavaScript Basics
19
JavaScript Intermediate
18
JavaScript Advanced
16
TypeScript Basics
14
TypeScript Intermediate
14
TypeScript Advanced
12
Entity Framework Core
28
Dapper
16
Git & GitHub
29
Web Security (OWASP Top 10)
21
LLM Fundamentals
20
C# Fundamentals
20
Object-Oriented Programming in C#
16
C# Collections and Generics
11
LINQ
17
Asynchronous Programming in C#
17
Advanced C#
14
C# Versions
6
Solution Patterns
22
SOLID and Design Principles
12
Clean Code
13
Design Patterns
23
UML and Modeling
18
Introduction to Software Architecture
9
Clean, Onion and Hexagonal Architecture
8
Vertical Slice Architecture
6
Domain-Driven Design
12
CQRS and Event Sourcing
10
Messaging and Event-Driven Architecture
9
Modular Monolith
2
Microservices
10
UI Architecture Patterns
9
Architecture Decisions
7
System Design
15
Distributed Systems Fundamentals
11
Background Jobs and Scheduled Jobs
11
Working with Message Queues
14
Logging in .NET
10
Caching
10
Real-time Applications
9
ASP.NET Core MVC and Razor Pages
13
CI/CD Fundamentals
8
GitHub Actions
16
Jenkins
12
Web Servers and Hosting
12
Deployment Strategies
9
Kubernetes
19
Authentication and Authorization
18
2 posts found
#structured-logging
Backend
PART 01
What to Log and What Not To: A Logging Strategy for .NET and the Anatomy of a Good Log Event
A good log event is a single occurrence that answers its reader's question: it has a constant message template, meaningful property names and an EventId. We turn five bad log lines in the Bookstore order flow into three events and show level choice, double-logged exceptions and the cost of interpolation caught by CA2254 with real output.
8 Nov 2026
12 min
4
Backend
PART 13
Logging in ASP.NET Core: ILogger, Log Levels, Structured Logging and Serilog
We write logs with ILogger<T> in ASP.NET Core: categories, log levels, filters via appsettings and environment variables, structured logging with message templates, scopes, the LoggerMessage source generator and the Serilog version that supports net6.0.
4 Nov 2026
8 min
32