Feel Good.

29 октября 2010

Настройка логов на примере NLog

Хочу поделиться с Вами своим best practices по настройке логирования на примере NLog. Логи, это первая вещь, которую приходится настраивать при создании нового проекта, причем обычно для каждого нового проекта настройки логирования выглядят, как шаблонное решение, поэтому разумно выделить единый общий шаблон и использовать его в своих проектах. В данной статье рассмотрим мое простое шаблонное решение, которое я успешно применяю во многих своих проектах. Основная идея которую я отразил в шаблоне, это ведение не одного общего лога, а нескольких, каждый из которых лишь отличается уровнем подробности логирования и назначением, это 2 основных и 2 вспомогательных лога.

06 октября 2010

Пишем обертку для Stopwatch

Во время работы приложения, в качестве мониторинга времени выполнения метода или доступа к свойству используется класс Stopwatch из System.Diagnostics. Работает Stopwatch очень просто, он замеряет время прошедшее между вызовами Start* и Stop* методами. Приведу простой пример:

// Наш секундомер.

Stopwatch timer = new Stopwatch();           

timer.Start(); // Запустим секундомер

try

{

    Thread.Sleep(1234); // долгая операция

}

finally

{

    timer.Stop(); // Остановим секундомер

    // Показания секундомера:

    TimeSpan elapsed = timer.Elapsed;

    Console.WriteLine("Время выполнения {0}", elapsed);

}


В данном примере видны все неудобства использования Stopwatch, это необходимость явно создавать объект Stopwatch, это явный запуск и остановка секундомера, при этом, если возможны исключения, то нужно добавить и обработку исключений.