public Logger GetLogger(string name)
{
return (logLevel, messageFunc, exception, formatParameters) =>
{
if (messageFunc == null)
{
if (logLevel == LogLevel.Trace)
return false;
return true; // All log levels are enabled except for trace
}
ConsoleColor consoleColor;
if (Colors.TryGetValue(logLevel, out consoleColor))
{
var originalForground = Console.ForegroundColor;
try
{
Console.ForegroundColor = consoleColor;
WriteMessage(logLevel, name, messageFunc, formatParameters, exception);
}
finally
{
Console.ForegroundColor = originalForground;
}
}
else
{
WriteMessage(logLevel, name, messageFunc, formatParameters, exception);
}
return true;
};
}