Jump to content


- - - - -

Debugging vs logging


  • You cannot reply to this topic
5 replies to this topic

#1 Ilg

Ilg

    geek

  • Root Admin
  • PipPipPipPipPipPipPip
  • 2,717 posts
  • Time Online: 17d 6h 22m 31s

Posted 29 February 2008 - 11:28 AM

Цитата
As personal choice, we tend not to use debuggers beyond getting a stack trace or the value of a variable or two.

One reason is that it is easy to get lost in details of complicated data structures and control flow; we find stepping through a program less productive than thinking harder and adding output statements and self-checking code at critical places.

Clicking over statements takes longer than scanning the output of judiciously-placed displays.

It takes less time to decide where to put print statements than to single-step to the critical section of code, even assuming we know where that is.

More important, debugging statements stay with the program; debugging sessions are transient.

© Brian W. Kernighan, Rob Pike, "The Practice of Programming"


ваш подход - включать как можно больше отладочных сообщений в код, и читать логи или запускать отладчик и искать ошибку?

дебагером я пользуюсь крайне редко, стараюсь включать отладочную информацию в код, но мне не нравится что код становится плохо-читаемым. можно конечно как то прикрутить аспекты, но кажись они только для трассировки подойдут в данном случае, аспектами не пользовался, сказать не могу. Чарли, я знаю, ты аспекты юзал, насколько ты их задействуешь в процессе логирования?

делитесь опытом и идеями smile.gif
  • 0

#2 sapsan

sapsan

    ayıq qafil

  • Постояльцы
  • PipPipPipPipPip
  • 837 posts
  • Time Online: 9h 32m 19s

Posted 29 February 2008 - 11:49 AM

очень редко пользуюсь..
  • 0

#3 charlie

charlie

    rm -rf /

  • Новенькие
  • PipPip
  • 71 posts
  • :

Posted 29 February 2008 - 01:49 PM

Дебаггером пользуюсь очень редко. В основном логгинг и покрытие юнит-тестами.
  • 0

#4 Ilg

Ilg

    geek

  • Root Admin
  • PipPipPipPipPipPipPip
  • 2,717 posts
  • Time Online: 17d 6h 22m 31s

Posted 29 February 2008 - 02:00 PM

charlie,

ну и как? код бывает читаемым? как избежать "засорения кода"?
  • 0

#5 charlie

charlie

    rm -rf /

  • Новенькие
  • PipPip
  • 71 posts
  • :

Posted 29 February 2008 - 05:37 PM

2 Ilg:
Аспекты я юзаю не для DEBUG-логгинга. Юзаю их для записи в лог (чаще всего лог-таблицу) всякой активности пользователя - ну там вошел в систему, сохранил что-то, etc. Т.е. более высокоуровневое логгирование (трасировка), чем тебе надо. Кроме того, если мне не изменяет память, минимальной точкой входа для aspect-a является функция. Т.е. такой case ты не прологгируешь:

Код

function test() {
    log.debug("Foo");
    //здесь что-нибудь делаем
    log.debug("Bar");
   //опять что-то сделали
   log.debug("FooBar");
}

А насчет читабельности кода с подробнвм логгингом - то во всем нужна мера. Например, логгировать только то, что необходимо, не кидать Exception и писать в лог одновременно. Лучше выкинуть Exception, а на уже более высоком уровне залоггировать ошибку.
  • 0

#6 Эльказ

Эльказ

    PHP Specialist

  • Постояльцы
  • PipPipPipPipPipPip
  • 1,793 posts
  • Time Online: 5h 33m 54s

Posted 04 June 2009 - 07:01 PM

Логгинг
  • 0





0 user(s) are reading this topic

members, guests, anonymous users