Использование LoggerFactory для вывода на консоль; Проблема с .AddConsole () - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь узнать и реализовать ведение журнала в приложении c# winforms. В большинстве / всех примерах и документации, которые я обнаружил, они используют .AddConsole(), что приводит меня к следующей ошибке:

«ILoggingBuilder» не содержит определения для AddConsole и не имеет доступного метода расширения «Добавить консоль» '...

Мой текущий код выглядит следующим образом:

using Microsoft.Extensions.DependencyInjection; //<-----was suggested in an example but does nothing--<<<<
using Microsoft.Extensions.Logging;

    public partial class FormMain : Form
    {
        public FormMain()
        {
            var loggerFactory = LoggerFactory.Create(builder =>
            {
                builder
                    .AddFilter("Microsoft", LogLevel.Warning)
                    .AddFilter("System", LogLevel.Warning)
                    .AddFilter("LoggingConsoleApp.Program", LogLevel.Debug)
                    .AddConsole() //<-----------------------line with error---------<<<<
                    .AddEventLog();
            });

            ILogger logger = loggerFactory.CreateLogger<FormMain>();
            logger.LogInformation("Example log message");

            InitializeComponent();

            ...rest of program follows...

Вы можете помочь указать, как получить пример кода для компиляции?

Если вы Если у меня есть ссылка на учебник / документацию, к которой я могу обратиться, я также буду очень признателен за это.

В документах Microsoft я вижу, что есть метод ILoggerFactory.AddProvider (ILoggerProvider), но у меня его не было. любой успех с этим либо.

Спасибо за ваше время.

1 Ответ

2 голосов
/ 11 апреля 2020

Существуют различные механизмы регистрации, и вы не получаете их из коробки. Вам не хватает подходящего пакета Nuget. Вам необходимо добавить ссылку на пакет Microsoft.Extensions.Logging.Console. Как только вы это сделаете, методы расширения должны быть доступны для вас.

Вы можете найти пакет на nuget.org .

...