NUnit, Serilog и Datadog - PullRequest
       60

NUnit, Serilog и Datadog

0 голосов
/ 24 апреля 2020

мы столкнулись с проблемой использования NUnit, Serilog и Datadog.

Наша конфигурация

Мы работаем с:

  • . NET Core 3.1 (Visual Studio 16.5.4)
  • NUnit + NUnit3TestAdapter
  • Serilog + Serilog.Sinks.Datadog.Logs

Все пакеты являются последними NuGet.

Конфигурация Serilog

Это конфигурация Serilog, которую мы используем:

DatadogConfiguration datadogConfiguration = new DatadogConfiguration()
{
  Url = "https://http-intake.logs.datadoghq.eu",
  Port = 443,
  UseSSL = true,
  UseTCP = false
};

ServiceProvider = new ServiceCollection()
  .AddSingleton<IMyService, MyService>()
  .AddLogging(configure => configure.AddSerilog(
    new LoggerConfiguration()
    .MinimumLevel.Verbose()
    .Enrich.WithMachineName()
    .Enrich.WithProcessName()
    .Enrich.WithProcessId()
    .Enrich.WithThreadName()
    .Enrich.WithThreadId()
    .Enrich.WithProperty("Application", "Serilog Test Application")
    .Enrich.WithExceptionDetails()
    .WriteTo.Debug(
      outputTemplate: "[{Timestamp:o} {Level:u3}] [{MachineName}] [{ProcessName}:{ProcessId}] [{ThreadName}:{ThreadId}] [{Application}] [{SourceContext}] {Message:lj}{Exception}{Properties:j}{NewLine}")
    .WriteTo.File(
      path: "D:\\Temp\\LogFile.txt",
      outputTemplate: "[{Timestamp:o} {Level:u3}] [{MachineName}] [{ProcessName}:{ProcessId}] [{ThreadName}:{ThreadId}] [{Application}] [{SourceContext}] {Message:lj}{Exception}{Properties:j}{NewLine}")
    .WriteTo.DatadogLogs(
      "API_KEY",
      source: "csharp",
      service: "test service (by code)",
      host: "Serilog test application",
      tags: new string[] { "TAG_1:VALUE_1", "TAG_2:VALUE_2" },
      configuration: datadogConfiguration)
    .CreateLogger()))
  .BuildServiceProvider();

Тест

Мы тестируем эту конфигурацию как в режиме отладки (клавиша F5 в Visual Studio) и в тестовой среде NUnit (в Visual Studio).

Проблема

Проблема, с которой мы сталкиваемся, заключается в том, что во время отладки все работает нормально:

  • Журналы корректно поступают в выходные данные отладки Visual Studio.
  • Журналы корректно поступают в файл.
  • Журналы корректно поступают в Datadog.

, когда мы запускаем этот код в среда NUnit:

  • Журналы корректно поступают в отладочный вывод Visual Studio. * 10 41 *
  • Журналы корректно поступают в файл.

, но журналы не поступают в Datadog .

Проверяя сетевой поток с помощью Fiddler, мы замечаем, что, находясь в отладочный прогон, журналы отправляются в Datadog, в среде NUnit журналы НЕ отправляются в Datadog .

Есть идеи или предложения?

Спасибо

...