Exemple #1
0
        /// <summary>
        /// Log a message.
        /// </summary>
        /// <param name="level"></param>
        /// <param name="message"></param>
        /// <param name="e"></param>
        /// <exception cref="ArgumentOutOfRangeException"></exception>
        protected virtual void Log(ConsoleLogThreshold level, string message, Exception e = null)
        {
            if (level < LogTheshold)
            {
                return;
            }
            StopProgressBar();

            var logPrefix = FormatLogPrefix(level);

            ConsoleColor outputColor;

            switch (level)
            {
            case ConsoleLogThreshold.Debug:
                outputColor = DebugForegroundColor;
                break;

            case ConsoleLogThreshold.Info:
                outputColor = InfoForegroundColor;
                break;

            case ConsoleLogThreshold.Done:
                outputColor = DoneForegroundColor;
                break;

            case ConsoleLogThreshold.Warn:
                outputColor = WarnForegroundColor;
                break;

            case ConsoleLogThreshold.Error:
                outputColor = ErrorForegroundColor;
                break;

            case ConsoleLogThreshold.Fatal:
                outputColor = FatalForegroundColor;
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(level), level, null);
            }

            if (e != null && LogTheshold <= ConsoleLogThreshold.Debug)
            {
                base.WriteErrorOnNewLine(logPrefix, DebugForegroundColor);
                base.WriteError(e.ToString(), DebugForegroundColor, logPrefix.Length);
            }
            if (level >= ConsoleLogThreshold.Error)
            {
                base.WriteErrorOnNewLine(logPrefix, outputColor);
                base.WriteError(message, outputColor, logPrefix.Length);
            }
            else
            {
                base.WriteOnNewLine(logPrefix, outputColor);
                base.Write(message, outputColor, logPrefix.Length);
            }
        }
 /// <inheritdoc />
 protected override void Log(ConsoleLogThreshold level, string message, Exception e = null)
 {
     LogToFile(level, message, e);
     base.Log(level, message, e);
 }
Exemple #3
0
        /// <summary>
        /// Returns the prefix for a message to log (e.g. LVL [00:00] ).
        /// </summary>
        /// <param name="level"></param>
        /// <returns></returns>
        protected virtual string FormatLogPrefix(ConsoleLogThreshold level)
        {
            var elapsed = Stopwatch.Elapsed;

            return($"{level.ToString().ToUpper().PadRight(5, ' ')} [{elapsed.Minutes:D2}:{elapsed.Seconds:D2}.{elapsed.Milliseconds:D3}] ");
        }
        protected override string FormatLogPrefix(ConsoleLogThreshold level)
        {
            var elapsed = Stopwatch.Elapsed;

            return($"[{elapsed.Minutes:D2}:{elapsed.Seconds:D2}.{elapsed.Milliseconds:D3}] ");
        }