Не удается настроить ведение журнала консоли в .net core 2.0 - PullRequest
0 голосов
/ 07 мая 2018

У меня есть следующий код:

var builder = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);

Configuration = builder.Build();
var serviceProvider = new ServiceCollection()
    .AddLogging(loggingBuilder => loggingBuilder.AddConfiguration(Configuration.GetSection("Logging"))
                                                .AddConsole()
                                                .AddDebug())
    .AddSingleton<IEngine, Engine>()
    .BuildServiceProvider();
var engine = serviceProvider.GetService<IEngine>();
await engine.RunAsync();

И

public class Engine : IEngine
{
    private readonly ILogger<Engine> logger;

    public Engine(ILoggerFactory loggerFactory)
    {
        logger = loggerFactory.CreateLogger<Engine>();
    }

    public async Task RunAsync()
    {
        logger.LogError("Test");
        logger.LogTrace("Starting engine!");
    }
}

Тогда у меня есть следующая конфигурация

{
  "Logging": {
    "IncludeScopes": false,
    "Console": {
      "LogLevel": {
        "Default": "Trace",
        "System": "Information",
        "Microsoft": "Information"
      }
    }
  }
}

Но на консоль ничего не записывается, но я получаю вывод в журнал отладки, так чего мне не хватает?

Я убедился, что он находит файл конфигурации, так что проблема не в этом!

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

Вместо вызова Thread.Sleep и ожидания завершения регистратора, если вы сохраняете экземпляр регистратора, вы можете выполнить:

logger.Dispose ()

, чтобы заставить регистратор очищать (выводить) свой кэш до закрытия приложения.

Если регистратор привязан к IContainer или ServiceProvider, вы должны иметь возможность использовать Dispose () для тех же целей.

https://github.com/serilog/serilog-extensions-logging-file/issues/16

0 голосов
/ 07 мая 2018

Ну, похоже .NET Core 2.0 имеет задержку перед печатью на консоль.

Так что это сработало, я просто не ждал, пока оно вспыхнет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...