public static void Write(LogMessageEventArgs e) { #if !DEBUG if (e.Severity > LogSeverity.Info || e.Severity > Program.Config.LogLevel) return; #endif //Color ConsoleColor color; switch (e.Severity) { case LogSeverity.Error: color = ConsoleColor.Red; break; case LogSeverity.Warning: color = ConsoleColor.Yellow; break; case LogSeverity.Info: color = ConsoleColor.White; break; #if DEBUG case LogSeverity.Verbose: color = ConsoleColor.Gray; break; case LogSeverity.Debug: #endif default: color = ConsoleColor.DarkGray; break; } // Exception string exMessage; Exception ex = e.Exception; if (ex != null) { while (ex is AggregateException && ex.InnerException != null) ex = ex.InnerException; exMessage = ex.Message; } else exMessage = null; //Source string sourceName = e.Source?.ToString(); // Text string text; if (e.Message == null) { text = exMessage ?? ""; exMessage = null; } else text = e.Message; //Build message StringBuilder builder = new StringBuilder(text.Length + (sourceName?.Length ?? 0) + (exMessage?.Length ?? 0) + 5); if (sourceName != null) { builder.Append('['); builder.Append(sourceName); builder.Append("] "); } foreach (var c in text) { if (!char.IsControl(c)) //Strip control chars builder.Append(c); } if (exMessage != null) { builder.Append(": "); builder.Append(exMessage); } text = builder.ToString(); #if DEBUG if (e.Severity <= Program.Config.LogLevel) #endif { Output(text, color); } #if DEBUG System.Diagnostics.Debug.WriteLine(text); #endif }
private static void WriteLog(LogMessageEventArgs e) { //Color ConsoleColor color; switch (e.Severity) { case LogSeverity.Error: color = ConsoleColor.Red; break; case LogSeverity.Warning: color = ConsoleColor.Yellow; break; case LogSeverity.Info: color = ConsoleColor.White; break; case LogSeverity.Verbose: color = ConsoleColor.Gray; break; case LogSeverity.Debug: default: color = ConsoleColor.DarkGray; break; } //Exception string exMessage; Exception ex = e.Exception; if (ex != null) { while (ex is AggregateException && ex.InnerException != null) ex = ex.InnerException; exMessage = ex.Message; } else exMessage = null; //Source string sourceName = e.Source?.ToString(); //Text string text; if (e.Message == null) { text = exMessage ?? ""; exMessage = null; } else text = e.Message; //Build message StringBuilder builder = new StringBuilder(text.Length + (sourceName?.Length ?? 0) + (exMessage?.Length ?? 0) + 5); if (sourceName != null) { builder.Append('['); builder.Append(sourceName); builder.Append("] "); } for (int i = 0; i < text.Length; i++) { //Strip control chars char c = text[i]; if (!char.IsControl(c)) builder.Append(c); } if (exMessage != null) { builder.Append(": "); builder.Append(exMessage); } text = builder.ToString(); //if (e.Severity <= LogSeverity.Info) //{ Console.ForegroundColor = color; Console.WriteLine(text); //} /*#if DEBUG System.Diagnostics.Debug.WriteLine(text); #endif*/ }
private static void LogMessage(object sender, LogMessageEventArgs e) { System.Diagnostics.Debug.WriteLine($"[{e.Severity}] {e.Source} : {e.Message}"); }