using System;
using System.Diagnostics;
using System.Collections.Generic;
namespace FlimFlan.Diagnostics
{
public class ColorConsoleTraceListener : ConsoleTraceListener
Dictionary<TraceEventType, ConsoleColor> eventColor = new Dictionary<TraceEventType, ConsoleColor>();
public ColorConsoleTraceListener()
eventColor.Add(TraceEventType.Verbose, ConsoleColor.DarkGray);
eventColor.Add(TraceEventType.Information, ConsoleColor.Gray);
eventColor.Add(TraceEventType.Warning, ConsoleColor.Yellow);
eventColor.Add(TraceEventType.Error, ConsoleColor.DarkRed);
eventColor.Add(TraceEventType.Critical, ConsoleColor.Red);
eventColor.Add(TraceEventType.Start, ConsoleColor.DarkCyan);
eventColor.Add(TraceEventType.Stop, ConsoleColor.DarkCyan);
}
public override void TraceEvent(TraceEventCache eventCache, string source, TraceEventType eventType, int id, string message)
TraceEvent(eventCache, source, eventType, id, "{0}", message);
public override void TraceEvent(TraceEventCache eventCache, string source, TraceEventType eventType, int id, string format, params object[] args)
ConsoleColor originalColor = Console.ForegroundColor;
Console.ForegroundColor = getEventColor(eventType, originalColor);
base.TraceEvent(eventCache, source, eventType, id, format, args);
Console.ForegroundColor = originalColor;
private ConsoleColor getEventColor(TraceEventType eventType, ConsoleColor defaultColor)
if (!eventColor.ContainsKey(eventType))
return defaultColor;
return eventColor[eventType];
namespace ConsoleApplication1
class Program
static void Main(string[] args)
TraceSource trace = new TraceSource("log");
trace.TraceEvent(TraceEventType.Start, 0);
trace.TraceInformation("Hello World");
trace.TraceEvent(TraceEventType.Error, 0, "Something failed.");
trace.TraceEvent(TraceEventType.Verbose, 0, "I like ice cream.");
trace.TraceEvent(TraceEventType.Critical, 0, "Something went horribly wrong!");
trace.TraceEvent(TraceEventType.Verbose, 0, "I like cherries.");
trace.TraceEvent(TraceEventType.Warning, 0, "This program will end soon...");
trace.TraceEvent(TraceEventType.Information, 0, "Ending program.");
trace.TraceEvent(TraceEventType.Stop, 0);
<system.diagnostics>
<sources>
<source name="log" switchValue="All">
<listeners>
<add name="Console" type="FlimFlan.Diagnostics.ColorConsoleTraceListener, ConsoleApplication1" />
</listeners>
</source>
</sources>
</system.diagnostics>
Remember Me
Powered by: newtelligence dasBlog 2.1.8209.14743
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.
Site theme based on the essence design by Jelle Druyts