мы столкнулись с проблемой использования 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 .
Есть идеи или предложения?
Спасибо