Вход в чужой код - PullRequest
       28

Вход в чужой код

1 голос
/ 14 октября 2010

Я только начал работать над приложением C # (используя log4net). Я должен добавить журналы к коду, написанному кем-то другим. Следовательно, я не могу хорошо понимать контекст каждый раз (слишком много кода, слишком мало времени :)).

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

Я думаю, что я переусердствовал в некоторых местах, но требуется некоторая степень единообразия. Какие-нибудь предложения относительно правильного (или лучшего) подхода?

Ответы [ 4 ]

6 голосов
/ 14 октября 2010

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

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

По крайней мере, регистрируйте все исключения, никогда не поймайте исключение, не сделав с ним что-либо.

2 голосов
/ 14 октября 2010

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

1 голос
/ 14 октября 2010

Из моего pov можно записывать в журнал каждую функцию / конструктор с входными параметрами, что приводит к отладке.
Но сохраняйте сообщения журнала настолько короткими, насколько это возможно, так как большинство данных можно добавлять / изменять через конфигурацию log4net.При этом лог только parameter1: value1 parameter2: value2 и result:x

0 голосов
/ 14 октября 2010

Возможно, вам также следует рассмотреть возможность регистрации важных условных операторов и их ветвей (записей), таких как if / else if / else, и switch / case / default и т. Д. Это поможет вам предоставить больше логических деталей внутри методов.

...