Записывать все вызовы функций в консоль - PullRequest
1 голос
/ 21 августа 2009

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

Console.WriteLine("classname: methodname")

каждому методу и впоследствии удалить их (удаление может быть выполнено с помощью условной компиляции, но не очень приятно смотреть на код, когда у вас есть все это избыточность)

Ответы [ 5 ]

5 голосов
/ 21 августа 2009

Кто-то упомянул мне один дополнительный инструмент, использующий атрибуты. Посмотрим, смогу ли я его найти.

Я думаю, что это был PostSharp:

Статья

http://www.postsharp.org/

3 голосов
/ 21 августа 2009

Вы можете использовать PostSharp , чтобы перехватывать все вызовы методов и печатать их даже со всеми аргументами, и это не требует изменений исходного кода. В этой статье CodeProject показано, как вести запись в PostSharp.

Отметим, что PostSharp - это фреймворк для аспектно-ориентированного программирования (AOP) , и есть еще некоторые.

1 голос
/ 21 августа 2009

Если log4net так же хорош, как log4j, то все настроено

http://logging.apache.org/log4net//index.html

0 голосов
/ 21 августа 2009

AOP поддерживается также http://www.springframework.net/

0 голосов
/ 21 августа 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...