Куда помещать код логирования?
От: stomsky Россия  
Дата: 29.02.12 07:22
Оценка:
Доброго времени суток!
Пишу сейчас один сервис, который будет круглосуточно выполнять всякие полезные действия.
Надо вести подробный лог.
Сейчас кодирую и вижу как буквально на глазах "полезный" код засоряется кодом логирования.
Подскажите, плиз, как вы боритесь с этой проблемной?
Про аспекты я, конечно, слышал, но не хочется под это дело сторонние библиотеки привлекать.
И, кстати, какой вариант код по-вашему предпочтительнее (на осмысленность сообщений пожалуйста внимания не обращайте):

class MyClass
{
  ILogger _logger;
  ...
  void DoAnything()
  {
    _logger.Info("Начато выполнение действия...");

    _logger.Info("Выполняется DoAction1...");
    DoAction1();
    _logger.Info("DoAction1 выполнено успешно");

    _logger.Info("Выполняется DoAction2...");
    DoAction2();
    _logger.Info("DoAction2 выполнено успешно");

    _logger.Info("Выполняется DoAction3...");
    DoAction3();
    _logger.Info("DoAction3 выполнено успешно")

    _logger.Info("Действие выполнено успешно");
  }
  void DoAction1()
  { ... }
  void DoAction2()
  { ... }
  void DoAction3()
  { ... }
}


или такой:

class MyClass
{
  ILogger _logger;
  ...
  void DoAnything()
  {
    _logger.Info("Начато выполнение действия...");

    DoAction1();
    DoAction2();
    DoAction3();

    _logger.Info("Действие выполнено успешно");
  }
  void DoAction1()
  {
    _logger.Info("Выполняется DoAction2...");
    ...
    _logger.Info("DoAction1 выполнено успешно");
  }
  void DoAction2()
  {
    _logger.Info("Выполняется DoAction2...");
    ...
    _logger.Info("DoAction1 выполнено успешно");
  }
  void DoAction3()
  {
    _logger.Info("Выполняется DoAction3...");
    ...
    _logger.Info("DoAction3 выполнено успешно");
  }
}

В первом варианте, вроде бы логирование более централизованно, но код уж больно замусорен.
Во втором случае код логирования слишком размазан...

Или все-таки на аспекты смотреть? Кто-нибудь этот функционал из BlToolkit пробовал? Я его для доступа к данным использую...
Красота — наивысшая степень целесообразности. (c) И. Ефремов
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.