Настройте Serilog.Sinks.TextWriter через Serilog.Settings.AppSettings - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь настроить Serilog.Sinks.TextWriter через Serilog.Settings.AppSettings

Я все заработал, учитывая тривиальные примеры обоих описаний github.У меня все работает нормально с консольной раковиной.Тем не менее, мне нужно настроить TextWriter для использования стандартного выхода.По какой-то причине использование Console не подходит для стандартной платформы на моей платформе (Mono в Linux), TextWriter с использованием Console.Out, с другой стороны.

Работает следующий программный подход:

Logger = new LoggerConfiguration()
    .ReadFrom.AppSettings()
    .MinimumLevel.
    .Enrich.WithThreadId()
    .Enrich.FromLogContext()
    .WriteTo.TextWriter(Console.Out, outputTemplate: "[{ThreadId} {Level:u3} {SourceContext}] {Message:lj}{NewLine}{Exception}")
    .CreateLogger();

Однако следующий фрагмент appconfig приводит к тому, что ничего не регистрируется вообще

<appSettings>
    <add key="serilog:minimum-level" value="Verbose" />
    <add key="serilog:enrich:FromLogContext" />
    <add key="serilog:using:Thread" value="Serilog.Enrichers.Thread" />
    <add key="serilog:enrich:WithThreadId" />
    <add key="serilog:using:TextWriter" value="Serilog.Sinks.TextWriter" />
    <add key="serilog:using:Console.Out" value="System" />
    <add key="serilog:write-to:TextWriter" />
    <add key="serilog:write-to:TextWriter.textWriter" value="Console.Out" />
    <add key="serilog:write-to:TextWriter.outputTemplate" value="[{ThreadId} {Level:u3} {SourceContext}] {Message:lj}{NewLine}{Exception}" />
</appSettings>

У меня такое ощущение, что это попытка использовать Console.Out в качестве аргумента, который запутывает вещи.

Любые предложения о том, как настроить это с помощью appconfig?

...