public void Write(string text, VtLogState state = VtLogState.None) { string toFileText; var timeStr = toFileText = GetTimeStr(); Console.Write(timeStr); if (state != VtLogState.None) { var stateStr = VtLogStateConverter.ToString(state); if (!string.IsNullOrEmpty(stateStr)) { stateStr = string.Format("[{0}] ", stateStr); } var prevForeColor = Console.ForegroundColor; Console.ForegroundColor = VtLogStateConverter.ToColor(state); Console.Write(stateStr); Console.ForegroundColor = prevForeColor; toFileText += stateStr; } text = string.Format("{0}", text); toFileText += text; Console.WriteLine(text); LogToFile(toFileText); }
public static ConsoleColor ToColor(VtLogState state) { switch (state) { case VtLogState.Info: return(ConsoleColor.Yellow); case VtLogState.Debug: return(ConsoleColor.Magenta); case VtLogState.Error: return(ConsoleColor.Red); case VtLogState.Ok: return(ConsoleColor.Green); } return(Console.ForegroundColor); // jinak vracim vychozi barvu }
public void Write(Exception ex, bool debugInfo = true, VtLogState state = VtLogState.Error) { Write("Exception: ".PadRight(60, '='), state); if (ex != null) { Write(string.Format("Type: {0}", ex.GetType().FullName), state); Write(string.Format("Message: {0}", ex.Message), state); var webEx = ex as WebException; if (webEx != null) { Write(string.Format("WebException.Status: {0}", webEx.Status), state); if (webEx.Status == WebExceptionStatus.ProtocolError) { Console.WriteLine("WebException.Response.Status Code: {0}", ((HttpWebResponse)webEx.Response).StatusCode); Console.WriteLine("WebException.Response.Status Description: {0}", ((HttpWebResponse)webEx.Response).StatusDescription); } } var exceptionsSet = ex.InnerExceptionsSet(); if (exceptionsSet.Count > 1) { Write("Exception list: ", state); exceptionsSet.ForEach(p => Write(p, state)); } if (debugInfo) { var newLineSeparator = new string[] { Environment.NewLine }; Write("Source: ", state); ex.Source.Split(newLineSeparator, StringSplitOptions.None).ToList().ForEach(p => Write(p, state)); Write("StackTrace: ", state); //ar exceptionsSet = ex.InnerExceptionsSet(); ex.StackTrace.Split(newLineSeparator, StringSplitOptions.None).ToList().ForEach(p => Write(p, state)); } } else { Write("[exception is null ?]"); } Write(string.Empty.PadRight(60, '='), state); }
public static string ToString(VtLogState state) { switch (state) { case VtLogState.None: return(null); case VtLogState.Info: return("Info"); case VtLogState.Debug: return("Ddb"); case VtLogState.Error: return("Err"); case VtLogState.Ok: return("Ok"); default: return("?"); } }