One way to achieve this is to create a custom TraceListener. Then in app.config set listnerDataType to CustomTraceListenerData. This allows the ConsoleTraceListener to have formatted output. The output was formatted as expected. Without formatting, all values ββwere returned. Both custom TraceListener and app.config are included.
The code uses 5.0.505.0 instead of 4.1, as asked by the original question.
This code was taken from this site: java2s firstbricks "FirstBricks" EntLib "Registration" Extensions "ConsoleTraceListener.cs ( cache ). Comments were removed to make the code more readable in StackOverflow, and the default color was changed from white to gray .
namespace Eab.Logging { using System; using System.Diagnostics; using Microsoft.Practices.EnterpriseLibrary.Common.Configuration; using Microsoft.Practices.EnterpriseLibrary.Logging; using Microsoft.Practices.EnterpriseLibrary.Logging.Configuration; using Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners; [ConfigurationElementType(typeof(CustomTraceListenerData))] public class ConsoleTraceListener : CustomTraceListener { public override void TraceData(TraceEventCache eventCache, string source, TraceEventType eventType, int id, object data) { if (data is LogEntry && Formatter != null) { LogEntry le = (LogEntry)data; WriteLine(Formatter.Format(le), le.Severity); } else { WriteLine(data.ToString()); } } public override void Write(string message) { Console.ForegroundColor = ConsoleColor.Gray; Console.Write(message); } public override void WriteLine(string message) { Console.ForegroundColor = ConsoleColor.Gray; Console.WriteLine(message); } public void WriteLine(string message, TraceEventType severity) { ConsoleColor color; switch (severity) { case TraceEventType.Critical: case TraceEventType.Error: color = ConsoleColor.Red; break; case TraceEventType.Warning: color = ConsoleColor.Yellow; break; case TraceEventType.Information: color = ConsoleColor.Cyan; break; case TraceEventType.Verbose: default: color = ConsoleColor.Gray; break; } Console.ForegroundColor = color; Console.WriteLine(message); } } }
<loggingConfiguration name="" tracingEnabled="true" defaultCategory="General"> <listeners> <add type="Eab.Logging.ConsoleTraceListener, Eab.Logging" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.CustomTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" formatter="Simple Formatter" name="Console Listener" /> </listeners> <formatters> <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" template="{timestamp(local:[MM/dd/yyyy HH:mm:ss.fff])} : ({title}) {message}" name="Simple Formatter" /> </formatters> <categorySources> <add switchValue="All" name="General"> <listeners> <add name="Console Listener" /> </listeners> </add> </categorySources> <specialSources> <notProcessed switchValue="All" name="Unprocessed Category"> <listeners> <add name="Console Listener" /> </listeners> </notProcessed> <errors switchValue="All" name="Logging Errors & Warnings"> <listeners> <add name="Console Listener" /> </listeners> </errors> </specialSources> </loggingConfiguration>
source share