TL;DR - перейти к последнему абзацу
Фон
Я выполняю некоторые тесты на основе данных и использую файл журнала в качестве одного из результатов тестирования. Это работает примерно так-
- Read first file in folder
- Process first line and convert to a test
- Run Test
- Perform Validation 1
- ...
- ...
- Читать следующий файл
- И т.п.
Мой файл журнала отражает это:
INFO - Start RunAllFilesInFolder
INFO - File1:
INFO - Some info
INFO - Executing Test 1
INFO - Validation A result
INFO - ...
INFO - ...
INFO - File2:
...
На данный момент я использую/вызываю сеть Log 4 следующим образом:
static class LogHelper
{
internal static readonly log4net.ILog Log = log4net.LogManager.GetLogger
(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
}
// another file
using static Some.Namespace.LogHelper;
class SomeClass
{
Log.Info($"\t\tExecuting {t.Number}-{t.Name}");
}
Где отступ = "\t", "\t\t" или "\t\t\t" в зависимости от уровня, на котором находится тест.
Есть ли способ реорганизовать вызов LogHelper.Log, чтобы он учитывал статический «отступ», который можно увеличивать/уменьшать при переходе на разные уровни тестирования без явного указания отступа в каждом вызове?
т.е. Уметь вызывать, где это применимо, что-то вроде
Log.Indent.Increase();
Or
Log.Indent.Decrease();
И замените приведенный выше вызов для журнала просто на -
Log.Info($"Executing {t.Number}-{t.Name}");