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);
        }
Beispiel #2
0
        /// <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;
        }