После непродолжительного гугления я сделал следующее:
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 комментария:
Охрененая статья .. логи лень было написать нормально ?
Грубовато, но постараюсь ответить на вопрос хотя я его не очень понял.
Написание системы логирования достаточно скучная работа, которая не приносит никакого business value заказчику. Это вообще исключительно инфраструктурная задача, но никак не фича.
Следовательно, заказчик не будет заинтересован оплачивать плюшки, которые по мере развития проэкта захочется добавить в самописный код, который отвечает за логирование.
Спасибо
Отправить комментарий