[Из песочницы] Подключаем log4net. Пошаговая инструкция

Как ни странно, но оказалось, что пошаговой инструкции для такой популярной библиотеки, как log4net, еще нет на Хабре. Исправляю эту недоработку.

Подключаем Nuget-пакет


Правой клавишей на References и выбираем Manage Nuget Packages:
image

В поисковой строке набираем log4net и находим пакет (в выдаче на первом месте):

image

Жмём кнопку «Install» и после установки пакета закрываем окно.

Создаем класс — обработчик.


Добавляем новый класс:

image

И называем его Logger:

image

Добавляем следующий код:

public static class Logger
    {
        private static ILog log = LogManager.GetLogger("LOGGER");


        public static ILog Log
        {
            get { return log; }
        }

        public static void InitLogger()
        {
            XmlConfigurator.Configure();
        }
    }

Не забудьте поставить ссылку на сборки в начале файла:
using log4net;
using log4net.Config;

Настраиваем конфиг


Теперь переходим к конфигу. В файле конфигурации App.config (или Web.config — если у вас это веб приложение) нужно внутри секции configuration добавить секцию log4net со следующим содержимым:
 
    
      
      
      
      
      
      
        
      

    

    
      
    
  

И сразу же после секции configuration должна стоять секция configSections, если её нет — добавьте (она должна быть первой) и внутри неё добавьте код для log4net. Если она одна — то выглядеть должно так:
   
    

Полностью конфиг у меня выглядит так:


   
    

Как видите имя логгера:

Совпадает с именем которое мы задали в классе Logger:
private static ILog log = LogManager.GetLogger("LOGGER");

По этому имени связывается конфиг с кодом класса-обработчика. Уже сейчас наш логгер готов к работе, просто добавьте следующий код:
Logger.InitLogger();//инициализация - требуется один раз в начале

Logger.Log.Info("Ура заработало!");

После запуска будет создана папка Logs и внутри будет файл Example.log с записью лога:
2016-09-21 10:59:41,104  INFO  Ура заработало!

Использование


Давайте немного изменим логику логирования. Выделим записи уровня Error и выше в отдельный файл (например отладочных записей у нас достаточно много и спам читать неудобно). Для этого добавим в конфиг следующее:

      
      
      
      
      
        
      
      
        
        
      
    

B добавим ссылку на аппендер:
    
      
      
    

Теперь секция log4net выглядит так:

    
      
      
      
      
      
      
        
      

    
    
      
      
      
      
      
        
      
      
        
        
      
    
    
      
      
    
  

И если мы изменим код программы на:
            Logger.InitLogger();//инициализация - требуется один раз в начале
            Logger.Log.Info("Ура заработало!");
            Logger.Log.Error("Ошибочка вышла!");

То увидим что появился еще один файл ExampleError.log — в него будут выводиться только ошибки:
2016-09-21 11:14:58,933 ERROR 8 LOGGER - Ошибочка вышла!

Ну, а за подробностями стоит обратиться к официальной документации. Спасибо за внимание!

Комментарии (2)

  • 23 сентября 2016 в 00:02

    0

    Как ни странно, но оказалось, что пошаговой инструкции для такой популярной библиотеки, как log4net, еще нет на Хабре.

    На Хабре нужны пошаговые инструкции ко всем библиотекам? ;)
  • 23 сентября 2016 в 00:24

    0

    оно uwp умеет?

© Habrahabr.ru