Ответ 1
Итак, я предполагаю, что ваша цель для ведения журнала - это, как и должно быть, отладка приложения, а не измерение производительности.
Хотя я думаю, что нет ни одного "правильного" ответа на этот вопрос, я бы всегда старался log
Временные метки, имена классов/функций и имя потока (если выполняется многопоточное приложение yr) в каждой строке журнала
Строка быстрого журнала @каждой точки входа вместе с полным содержимым переданный по запросу, предпочтительно в формате, который сделает это вам проще переиздать тот же запрос от скрипача или аналогичного инструмента (это можно сделать с помощью настраиваемого фильтра действий - посмотреть, как автор использует их для мониторинга производительности приложения web api здесь)
Если вы выполняете какие-либо запросы к базе данных как часть своего действия, запишите полная sql-строка запроса, если это возможно (еще раз, чтобы упростить повторять во время отладки), а также, по крайней мере, число строк вернулся
Если вы выполняете внешние вызовы службы, запишите как полный строки запроса и ответа
Используйте блоки try/catch для регистрации любых исключений (вы также можете использовать что-то вроде библиотеки ELMAH, чтобы сделать это автоматически, а чем обработка в коде - ссылка здесь и здесь
Все, что разрешено во время выполнения - считайте значения из файлов конфигурации, запросов к базе данных, вычисленных значений, также должно быть зарегистрировано
Я уверен, что в этом списке больше не хватает - ведь все это зависит от того, что вы делаете в приложении. Вы должны спрашивать себя на каждом шагу - что может пойти не так в моем заявлении? Какие вещи я или бедный человек, которые будут работать над этим после меня, найдут полезным, отлаживая проблему?