что такое шаблон log4net для получения эквивалента Trace.indent и trace.unindent - PullRequest
6 голосов
/ 30 августа 2011

Мне нужно обрабатывать отступы и отступы, как родной класс трассировки . Есть идеи, как это можно сделать с помощью файла log4net и консольного приложения? спасибо

1 Ответ

2 голосов
/ 06 июня 2012

Я бы порекомендовал обернуть консольный приложение log4net в класс и добавить туда поддержку отступов.Мы делаем что-то похожее на StringBuilder.Мы создали класс FormattedStringBuilder, который имеет методы уровня увеличения и уменьшения уровня отступа

private const string Indent = "\t";
private readonly int IndentLength = Indent.Length;

public void IncreaseIndent()
{
    // Increase indent
    indentLevel++;
    indentBuffer.Append(Indent);

    // If new line already started, insert another indent at the beginning
    if (!useIndent)
    {
        contentBuffer.Insert(0, Indent);
    }
}

public void DecreaseIndent() 
{
    // Only decrease the indent to zero.
    if (indentLevel > 0) 
    {
        indentLevel--;

        // Remove an indent from the string, if applicable
        if (indentBuffer.Length != 0) 
        {
            indentBuffer.Remove(indentBuffer.Length - IndentLength, IndentLength);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...