- Подробности
-
Опубликовано 24.12.2015 22:05
-
Просмотров: 10866
Эта статья для тех, кто хочет быстро начать использовать логирование в своих программах. В доступной форме рассмотрим подключение и использования библиотеки для ведения логов – log4net. Я не буду расписывать достоинства и недостатки данного логгера. Просто хочу привести пример, который подтолкнет новичков на использование логирования при разработке своих программ. Логирование будет вестись просто в текстовый файл. Если у вас уже есть какой-то проект, то все настройки вы можете проводить в нем. Все остальные, могут создать новый проект – так поступлю я, и начать использовать логирование. Скачиваем последнюю версию библиотеки по следующему адресу. Распаковываем…
Настройка log4net
Из папки bin\net\2.0\release\ подключаем к нашему проекту файл log4net.dll. После удачного подключения в References появится log4net.
Теперь в файле app.config (между ….ваш код….), который описывает настройку вашего приложения, необходимо добавить следующий код:
2 |
< section name = "log4net" type = "log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> |
6 |
< appender name = "FileAppender" type = "log4net.Appender.FileAppender" > |
7 |
< param name = "File" value = "d:\\log-file.txt" /> |
8 |
< param name = "AppendToFile" value = "true" /> |
9 |
< layout type = "log4net.Layout.PatternLayout" > |
10 |
< param name = "ConversionPattern" value = "%d [%t] %-5p %c [%x] - %m%n" /> |
14 |
< level value = "DEBUG" /> |
15 |
< appender-ref ref = "FileAppender" /> |
В параметре File – задается путь к файлу (в данном случае на диске D будет создан файл log-file.txt и в него будет вестись запись). AppendToFile – утанавливаем в true, чтобы после каждого запуска, программа продолжала писать лог, а не начинала новый. ConversionPattern – описывает формат записи каждой строки. Значение level устанавливаем в DEBUG.
С файлом настроек мы закончили. Теперь будем писать код.
В главной функции программы (функция Main файла Program.cs) необходимо указать, что настройки мы будем брать из файла конфигурации программы. В нашем случае файл Program.cs выглядит следующим образом (без вашего, уже написанного кода):
10 |
public static readonly ILog log = LogManager.GetLogger( typeof (Program)); |
18 |
log4net.Config.DOMConfigurator.Configure(); |
Фактически, вам необходимо добавить 4 строчки кода, чтобы начать использовать логирование.
Логирование используется в классах. Поэтому, в классе необходимо добавить строчку:
4 |
public static readonly ILog log = LogManager.GetLogger( typeof (Ваш_класс)); |
После этого в классе можно использовать объект log. Для примера я создал следующий класс с двумя методами.
1 class TestLog
2 {
3 public static readonly ILog log = LogManager.GetLogger(typeof(TestLog));
4
5 public void Test1()
6 {
7 int r = 2 + 2;
8 //Просто информация
9 log.Info("Результат сложения = " + r);
10 }
11
12 public void Test2()
13 {
14 try
15 {
16 //Специально вызываем ошибку для проверки
17 TestLog d = null;
18 d.ToString();
19 }
20 catch (Exception error)
21 {
22 log.Error(error.Message);
23 }
24 }
25 }
У меня получились следующие результаты работы методов Test1 и Test2:
2011-02-08 09:35:47,469 [11] INFO TestLog4Net.TestLog [(null)] – Результат сложения = 4
2011-02-08 09:35:47,531 [11] ERROR TestLog4Net.TestLog [(null)] – В экземпляре объекта не задана ссылка на объект.
На этом у меня все. Традиционно, к статье прилагается тестовый проект. Более подробную документацию по логгеру можно получить на сайте log4net.