---
title: "How to log error in .NET Core?"  
description: "How to log error in .NET Core?"  
author: "Anubhav Sharma"  
published: 2026-03-16  
updated: 2026-04-02  
canonical: https://www.mindstick.com/interview/34476/how-to-log-error-in-dot-net-core  
category: "asp.net core"  
tags: ["asp.net core"]  
reading_time: 2 minutes  

---

# How to log error in .NET Core?

In ASP.NET Core, error logging is done using **ILogger**.\
It helps to save errors in **file, database, console, or logging tools**.

## 1. Use ILogger in Controller

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

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

    public IActionResult Index()
    {
        try
        {
            int x = 10;
            int y = 0;
            int z = x / y;
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "Error occurred in Index");
        }

        return View();
    }
}
```

This will log error in console / default logger.

## 2. Log in Middleware / API

```cs
try
{
    // code
}
catch (Exception ex)
{
    logger.LogError(ex, "API Error");
}
```

## 3. Log Levels

```cs
LogInformation()
LogWarning()
LogError()
LogCritical()
LogDebug()
```

Example:

```cs
_logger.LogError("Error message");
```

## 4. Use Serilog (Production)

Most used logging tool with .NET Core

```plaintext
Serilog
NLog
Log4Net
```

Example:

```cs
builder.Host.UseSerilog();
```

Short Answer for Interview:

> In .NET Core we log errors using ILogger. It supports multiple log providers like Console, File, Serilog, NLog, etc.\
> We use `_logger.LogError(ex, "message")` inside try-catch or middleware.

## Answers

### Answer by Anubhav Sharma

In ASP.NET Core, error logging is done using **ILogger**.\
It helps to save errors in **file, database, console, or logging tools**.

## 1. Use ILogger in Controller

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

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

    public IActionResult Index()
    {
        try
        {
            int x = 10;
            int y = 0;
            int z = x / y;
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "Error occurred in Index");
        }

        return View();
    }
}
```

This will log error in console / default logger.

## 2. Log in Middleware / API

```cs
try
{
    // code
}
catch (Exception ex)
{
    logger.LogError(ex, "API Error");
}
```

## 3. Log Levels

```cs
LogInformation()
LogWarning()
LogError()
LogCritical()
LogDebug()
```

Example:

```cs
_logger.LogError("Error message");
```

## 4. Use Serilog (Production)

Most used logging tool with .NET Core

```plaintext
Serilog
NLog
Log4Net
```

Example:

```cs
builder.Host.UseSerilog();
```

Short Answer for Interview:

> In .NET Core we log errors using ILogger. It supports multiple log providers like Console, File, Serilog, NLog, etc.\
> We use `_logger.LogError(ex, "message")` inside try-catch or middleware.


---

Original Source: https://www.mindstick.com/interview/34476/how-to-log-error-in-dot-net-core

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
