Skip to content

How to log exceptions in C#

How to log exceptions in C#

How to log exceptions in C#

In this article, you’ll learn how to log exceptions in C# by example. Exceptions are an important part of any software application, as they provide a way to handle unexpected errors and prevent the application from crashing. 

In C#, exceptions are handled using try-catch blocks. In this article, we will discuss how to log exceptions in C# to improve the debugging process and make it easier to identify and fix errors in your application. If you want to skyrocket your C# career, check out our powerful ASP.NET full-stack web development course that also covers test-driven development and C# software architecture.

Become a job-ready C# developer!

The first step in logging exceptions is to create a logger class that will handle the logging process. This class should have methods for logging exceptions, such as a LogException method. The following is an example of a basic logger class:

The next step is to use the try-catch block to catch exceptions and log them using the logger class. For example:


A good practice is to include as much information as possible in the exception log, particularly those that help find the exception‘s root cause. This can include the exception message, stack trace, and any additional information relevant to the error. Additionally, you can log the current date and time, the user who caused the exception, and other contextual information that may help you understand the exception’s root cause.

Log Level

Another thing to consider is the log level; it’s important to determine the severity of the exception and log it accordingly. For example, you may want to log all exceptions at the Error level, but only log exceptions caused by user input at the Warning level.


Finally, it’s also important to ensure that the exception log is easily accessible. This can be done by storing the log in a file or database, or by sending the log to a remote logging service. You should also consider setting up notifications so that you are alerted when an exception occurs. By the way, did you know that we offer a unique and powerful online course that boosts your C# career? Check it out here!

Development vs. Production

Development and production exception logging have different requirements and considerations.

During development, the logs should be easily accessible by developers. So logging them on the console is often preferred to logging them in files or databases. 


Consider configuring your dependency injection library to choose the right logging class, depending on whether the application is in development mode or running in production. If you can also read my C# or dependency injection articles.

Why Do We Log Exceptions?

Logging exceptions has several benefits, including:

  • Improved debugging: By logging exceptions, developers can easily identify and fix bugs in the application. Detailed exception logs provide valuable information about the context in which the exception occurred.
  • Easier troubleshooting: Logging exceptions makes it easier to troubleshoot issues that arise in the application. By reviewing the exception logs, support teams can quickly identify the root cause of the problem and take the appropriate steps to fix it.
  • Better understanding of the application’s behavior: Exception logs provide a record of the application’s behavior, which can be used to gain a better understanding of how the application is being used, and identify potential problem areas.
  • Improved user experience: By logging exceptions, developers can identify and fix issues that affect the user experience. This can improve the overall quality of the application and lead to higher customer satisfaction.
  • Compliance and Auditing: Exception logs can be used to comply with regulations and standards, such as HIPAA, PCI-DSS and SOC2. They can also be used for auditing and forensic analysis, to understand what happened in a particular incident.
  • Monitoring: Exception logs can be used to monitor the application’s health, and identify trends and patterns that can help to anticipate and prevent issues.You may also want to learn about exception handling or caching multiple exceptions in C#.

You may also read my exception handling or caching multiple exceptions in C# articles.


It’s essential to log exceptions. You can easily log exceptions by using try-catch blocks and a logger class and improve the debugging process. Additionally, by including as much information as possible in the exception log and making it easily accessible, you can more quickly identify and fix errors in your application.

The information you include in logs can be used to improve the debugging process, troubleshoot issues, monitor the app, and gain a better understanding of the application’s behavior. This can lead to higher customer satisfaction and a better user experience. 

Leave a Reply

Your email address will not be published. Required fields are marked *