XLog.Formatters.LineFormatter.FormatSlow C# (CSharp) Method

FormatSlow() public method

public FormatSlow ( Entry entry ) : string
entry Entry
return string
        public string FormatSlow(Entry entry)
        {
            int slotNumber;
            var builder = FixedStringBuilderPool.Get(out slotNumber);
            try
            {
                var dt = entry.TimeStamp;
                builder.AppendDigitsFast(dt.Hour, 2);
                builder.Append(':');
                builder.AppendDigitsFast(dt.Minute, 2);
                builder.Append(':');
                builder.AppendDigitsFast(dt.Second, 2);
                builder.Append(':');
                builder.AppendDigitsFast(dt.Millisecond, 3);

                builder.Append("|");
                builder.Append(LogLevels.Levels[(int)entry.Level]);
                builder.Append("|");
                builder.AppendDigitsFast(LogEnvironment.CurrentManagedThreadId, 2, ' ');
                builder.Append("|");
                builder.Append(entry.Tag);
                builder.Append("|");

                if (_categoryFormatter != null)
                {
                    builder.Append(_categoryFormatter.GetString(entry.Category));
                    builder.Append("|");
                }

                builder.Append(entry.Message);
                if (entry.Exception != null)
                {
                    builder.Append(" --> ");

                    string exceptionString = entry.Exception.ToString();
                    if (_doAsyncExceptionCleanup)
                    {
                        exceptionString = ExceptionUtil.CleanStackTrace(exceptionString);
                    }

                    builder.Append(exceptionString);
                }

                switch (_lineEnding)
                {
                    case LineEnding.CR:
                        builder.Append('\r');
                        break;
                    case LineEnding.LF:
                        builder.Append('\n');
                        break;
                    case LineEnding.CRLF:
                        builder.Append('\r');
                        builder.Append('\n');
                        break;
                }

                return builder.ToString();
            }
            finally
            {
                FixedStringBuilderPool.Return(slotNumber, builder);
            }
        }
    }