private void Write(LogLevel level, string message, Exception exception) { if (_filter != null && !_filter.CanLog(level, LoggingType)) { return; } var sb = new StringBuilder(); sb.Append(DateTime.Now.ToString()); sb.Append("."); sb.Append(DateTime.Now.Millisecond.ToString("000")); sb.Append(" "); sb.Append(Thread.CurrentThread.ManagedThreadId.ToString("000")); sb.Append(" "); #if DEBUG var trace = new StackTrace(); StackFrame[] frames = trace.GetFrames(); if (frames != null) { string frame = frames[2].GetMethod().ReflectedType.Name + "." + frames[2].GetMethod().Name; sb.Append(frame.PadRight(40, ' ')); /* * int endFrame = frames.Length > 4 ? 4 : frames.Length; * int startFrame = frames.Length > 1 ? 2 : 0; * for (int i = endFrame; i >= startFrame; --i) * { * sb.Append(frames[i].GetMethod().ReflectedType.Name + "." + frames[i].GetMethod().Name); * sb.Append(" -> "); * } * */ } #else sb.Append(System.Reflection.MethodBase.GetCurrentMethod().Name); sb.Append(" | "); #endif sb.Append(message); sb.AppendLine(); sb.Append(exception); string msg = sb.ToString(); Console.ForegroundColor = GetColor(level); Console.WriteLine(msg); Console.ForegroundColor = ConsoleColor.Gray; WriteMsg(msg, level); }
/// <summary> /// Write an entry /// </summary> /// <param name="level">Importance of the log message</param> /// <param name="message">The message.</param> public void Write(LogLevel level, string message) { if (_filter != null && !_filter.CanLog(level, LoggingType)) { return; } var sb = new StringBuilder(); sb.Append(DateTime.Now.ToString()); sb.Append(" "); sb.Append(level.ToString().PadRight(10)); sb.Append(" | "); #if DEBUG var trace = new StackTrace(); StackFrame[] frames = trace.GetFrames(); if (frames != null) { int endFrame = frames.Length > 4 ? 4 : frames.Length; int startFrame = frames.Length > 1 ? 2 : 0; for (int i = endFrame; i >= startFrame; --i) { sb.Append(frames[i].GetMethod().ReflectedType.Name + "." + frames[i].GetMethod().Name); sb.Append(" -> "); } } #else sb.Append(System.Reflection.MethodBase.GetCurrentMethod().Name); sb.Append(" | "); #endif sb.Append(message); Console.ForegroundColor = GetColor(level); Console.WriteLine(sb.ToString()); Console.ForegroundColor = ConsoleColor.Gray; }