Я пытаюсь использовать NLog с тестированием XUnit. Работает хорошо по большей части, за исключением того, что я хочу автоматически удалять журнал при каждом запуске новой серии тестов. Читая «Параметры настройки Perfomrance», я думал, что смогу это сделать, но я не могу удержать его от удаления файла для каждого запускаемого теста.
Я программно настроил новый регистратор так, чтобы не испортить нормальное ведение журнала приложений и преодолеть эту проблему, я подумал о том, чтобы включить DeleteOldFileOnStartup, но затем использовать KeepFileOpen и CuncurrentWrites, чтобы все тестовые потоки записывали в один и тот же файл, но при этом выполняли операцию удаления. Это не работает!
//setup the test log file
var config = new NLog.Config.LoggingConfiguration();
var logfile = new NLog.Targets.FileTarget(debugLoggerName)
{
FileName = MainTestDir() + testFolder + debugLoggerName + ".txt",
Layout = "${message}",
DeleteOldFileOnStartup = true,
KeepFileOpen = true,
OpenFileCacheTimeout = 120,
ConcurrentWrites = true
};
config.AddRule(NLog.LogLevel.Debug, NLog.LogLevel.Fatal, logfile);
NLog.LogManager.Configuration = config;