понедельник, 7 мая 2007 г.

log4net в три шага

Сегодня решил воспользоваться библиотекой log4net для логирования сообщений в проекте, который я пишу в качестве работы на бакалавриат (слово "бакалавриат" мне подсказал spellchecker встроенный в Firefox, надеюсь что он меня не подвел :) ).

После непродолжительного гугления я сделал следующее:

1. Добавил ссылку на сборку log4net.dll в свой проект.
2. В App.config файл добавил следующее:
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
</configSections>

<log4net>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="log/trace.log"/>
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Date"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-5p %d{yyyy-MM-dd hh:mm:ss} [%t] %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="LogFileAppender"/>
</root>
</log4net>

3. В AssemblyInfo.cs добавил следующую строку:
[assembly: log4net.Config.DOMConfigurator(Watch = true)]

4. И после этого смог воспользоваться логированием из своего кода следующим образом:

static class ApplicationEntryPoint
{
public static ILog log = LogManager.GetLogger(string.Empty);

[STAThread]
static void Main()
{
log.Info("Application: start");
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);

FormMain formMain = new FormMain();
Application.Run(formMain);
log.Info("Application: end");
}
}


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

INFO 2007-05-07 10:02:14 [1064] Application: start
INFO 2007-05-07 10:02:17 [1064] Соединение с базой Paradox было успешно установлено.

4 комментария:

gembel комментирует...
Этот комментарий был удален администратором блога.
Анонимный комментирует...

Охрененая статья .. логи лень было написать нормально ?

Alexey Diyan комментирует...

Грубовато, но постараюсь ответить на вопрос хотя я его не очень понял.

Написание системы логирования достаточно скучная работа, которая не приносит никакого business value заказчику. Это вообще исключительно инфраструктурная задача, но никак не фича.

Следовательно, заказчик не будет заинтересован оплачивать плюшки, которые по мере развития проэкта захочется добавить в самописный код, который отвечает за логирование.

Анонимный комментирует...

Спасибо