Serilog не регистрирует соответствующий RequestId (идентификатор корреляции) - PullRequest
0 голосов
/ 05 апреля 2019

Я использую Serilog и ASP.NET Core Middleware под названием CorrelationId, который в основном меняет TraceIdentifier на значение, которое он читает в заголовке X-Correlation-ID.

Я вижу, чтоЗначение HttpContext.TraceIdentifier изменяется и сохраняется, но Serilog все еще регистрирует значение, которое было там до его изменения.Все остальное работает с Serilog, просто это значение сохраняет свое старое состояние (выглядит примерно так: 0HLLP1A57HHG6:00000001).

Вот мой Program.cs:

public static void Main(string[] args)
{
    BuildWebHost(args).Run();
}

public static IWebHost BuildWebHost(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>()
        .UseUrls("http://0.0.0.0:5000")
        .ConfigureLogging((hostingContext, logging) =>
        {
            var env = hostingContext.HostingEnvironment;
            Log.Logger = new LoggerConfiguration()
                .ReadFrom.Configuration(hostingContext.Configuration)
                .CreateLogger();

            Log.Information("Starting for environment {env}", env.EnvironmentName);
        })
        .Build();
}

IЯ использую регистратор, как это в контроллере:

private readonly ILogger<ValuesController> _loggerService;

public ValuesController(ILogger<ValuesController> logger)
{
    _loggerService = logger;
}


// GET api/values
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
    _loggerService.LogInformation("Test");
    return new string[] { "value1", "value2" };
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...