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
- Logging abstractions, Debug/Trace
- Basic profiling & traces (concepts)
- Guard & validation patterns