NLog удалить старый с несколькими процессами - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь использовать 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;
...