0Pricing
C# Academy · Lesson

Logging abstractions, Debug/Trace

Use System.Diagnostics Debug/Trace, add listeners, and create a tiny ILogger-style abstraction to decouple app code from sinks.

Why logging

Aim:

  • Send messages with Debug and Trace
  • Add listeners to see output
  • Introduce a tiny logging abstraction
  • Pick levels and simple formatting

Debug/Trace basics

Debug is for development; Trace is for any build. Add a ConsoleTraceListener to see messages in console apps.

using System;
using System.Diagnostics;

// Demo: show Debug/Trace after adding a ConsoleTraceListener
public class Program
{
  public static void Main(string[] args)
  {
    // By default, console apps may not show Debug/Trace. Add a listener.
    Trace.Listeners.Clear();
    Trace.Listeners.Add(new ConsoleTraceListener());

    Debug.WriteLine("Debug: only in debug builds (often)");
    Trace.WriteLine("Trace: in all builds (commonly)");

    Trace.TraceInformation("Info message");
    Trace.TraceWarning("Warning message");
    Trace.TraceError("Error message");
  }
}

All lessons in this course

  1. Logging abstractions, Debug/Trace
  2. Basic profiling & traces (concepts)
  3. Guard & validation patterns
← Back to C# Academy