log4net учебник
Начало работы с log4net
Поиск…
замечания
В этом разделе представлен обзор того, что такое log4net, и почему разработчик может захотеть его использовать.
Следует также упомянуть о любых крупных предметах в log4net и ссылаться на связанные темы. Поскольку документация для log4net нова, вам может потребоваться создать начальные версии этих связанных тем.
Настройка log4net
Создадим простое консольное приложение Hello World и зарегистрируем что-то в консоли с помощью log4net. После этого мы можем его масштабировать, чтобы использовать его в реальных сценариях разработки в следующих примерах. Давайте начнем с малого и построим его оттуда.
Во-первых, нам нужно создать простой консольный проект в Visual Studio и WriteLine("Hello World") как показано ниже
Затем нам нужно добавить библиотеку log4net в наш проект. Поэтому нам нужно щелкнуть правой кнопкой мыши по ссылке и выбрать « Управление пакетами NuGet»
Затем выполните поиск log4net и установите
Теперь мы успешно добавили log4net.dll в наш проект.
Теперь нам нужно настроить наш app.config (или web.config, если это веб-приложение). Эта часть немного сложна, но не паникуйте. Мы будем проходить через него шаг за шагом и запускать и запускать.
В app.config сначала нужно создать конфигурационный раздел под конфигурацией. Нам нужно указать имя и тип, как показано ниже:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</configSections>
Что мы здесь сделали, мы говорим о том, что мы собираемся создать раздел в нашем файле конфигурации с именем log4net который нужно искать. Все, что связано с протоколированием, будет здесь. От создания нашего файла журнала, как долго и какая информация должна регистрироваться. Итак, давайте продолжим и создадим раздел log4net .
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</configSections>
<log4net>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
Первое, что мы собираемся добавить в нашем разделе log4net, - это приложение. Приложение - это, в основном, инструмент ведения журнала. Это то, к чему мы хотим регистрировать наши журналы. Существует множество приложений, доступных для входа в файлы, базу данных и т. Д. В этом примере мы запишемся в окно консоли, поэтому создадим консольный Appender:
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
</appender>
</log4net>
Затем нам нужно определить макет:
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
</layout>
</appender>
</log4net>
В разделе «Макет» мы определим, что хотим отобразить на консоли, и как мы хотим отображать его. Для этого нам нужна схема преобразования. Существует много разных типов шаблонов, которые мы можем использовать, для этого примера мы будем придерживаться довольно простого шаблона.
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{ABSOLUTE} [%thread] %level %logger - %message%newline"/>
</layout>
</appender>
</log4net>
То, что мы делаем выше, говорит о том, что нам нужна следующая информация: абсолютная метка времени, текущий поток, который генерирует исключение и уровень ведения журнала. В log4net имеется 7 уровней регистрации.
- ВЫКЛ - ничто не регистрируется (не может быть вызвано)
- FATAL
- ОШИБКА
- WARN
- ИНФОРМАЦИЯ
- DEBUG
- ВСЕ - все регистрируется (не может быть вызвано)
Однако из 7 мы можем использовать только 5 (DEBUG, INFO, WARN, ERROR и FATAL). Объявление уровня регистрации в DEBUG означает, что он будет регистрировать все, то есть DEBUG, INFO, WARN, ERROR и FATAL. Однако при объявлении уровня ведения журнала WARN будут записываться только WARN, ERROR и FATAL. Надеюсь, вы понимаете иерархию.
Последнее, что нам нужно в app.config, - это раздел root. В корневом разделе размещены наши регистраторы верхнего уровня и уровень входа в систему. Важно понимать, что все наследуется от корня, поэтому ни один из приложений не будет регистрироваться, если на него не ссылаются под root. С этим добавлением, вот как выглядит ваш app.config :
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</configSections>
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{ABSOLUTE} [%thread] %level %logger - %message%newline"/>
</layout>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
Это не плохая идея, чтобы скопировать файлы в файл конфигурации, однако важно понять, за что они отвечают. Теперь, когда мы закончили настройку нашего app.config , нам нужно добавить немного кода в наш консольный проект. Во-первых, нам нужно определить одноразовую запись, которая должна быть размещена вне вашего класса.
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
Поместите его прямо под мои операторы using в файле Program.cs. Затем нам нужно создать экземпляр регистратора, чтобы использовать его для ведения журнала. Это делается раз в классе.
private static readonly log4net.ILog log = log4net.LogManager.GetLogger
(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
И, наконец, нам нужно записать что-то
log.Error("This is my error");
Файл Program.cs должен выглядеть примерно так:
using System;
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace Log4netTutorial
{
class Program
{
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
static void Main(string[] args)
{
Console.WriteLine("Hello World");
log.Error("This is my error");
Console.ReadLine();
}
}
}
Идите вперед и запустите программу, вы должны зарегистрировать свою ошибку в консоли:



