... эй, могу ли я получить значок за то, что его цитируют как тему в SO вопросе? 8 ^ D
Но, если серьезно, я хотел бы уточнить одну вещь в комментариях к журналу, приведенном выше, это то, что часть моего обоснования "подробного" журналирования основана на том факте, что я использую возможности самого log4net.
В приведенном мною примере этот метод ежедневно регистрируется в режиме WARN. Это означает, что единственное, что регистрируется «по умолчанию», - это исключение. Если мне позвонил один из моих клиентов с сообщением об ошибке в приложении, им не нужно было читать мне какое-то загадочное сообщение на экране, я проскакивал в журнале и мог видеть, что происходит. В большинстве случаев ответ тут же.
Что произойдет, если ответ недоступен? Log4net позволяет мне обновить мой файл конфигурации (не требуется повторная компиляция, нет необходимости получать доступ к какому-либо специальному системному файлу на веб-сервере с разрешения системного администратора) и перейти в режим INFO. Теперь вы начинаете видеть второй слой регистрации. Возможно, код никогда не попадал в определенный цикл. Возможно, для поиска данных был пустой набор записей. Этот второй уровень отладки полезен, и журнал только немного увеличивается. Как только это будет сделано, я могу снова изменить конфигурацию и вернуться к легкой регистрации.
Естественно, если что-то ДЕЙСТВИТЕЛЬНО сумасшедшее, тогда я перехожу на полный уровень отладки и хочу знать, о чем сообщает каждая переменная, с какими DataRows я имею дело, и что происходит в приложении. На моем нынешнем месте работы у нас нет возможности выполнять удаленную отладку в наших веб-приложениях, и мы не всегда можем подключиться к производственной базе данных без потенциального расширения данных, поэтому следующая полная отладка - это следующая лучшая вещь.
Я согласен с большинством людей, которые считают, что чрезмерное ведение журнала может привести к выходу приложения из строя и вызвать больше проблем, чем оно того стоит. Если бы не рекомендовал этот вид подробного входа в приложение, либо, если приложение не гарантирует его по соображениям безопасности. Тем не менее, возможность использовать подробное ведение журнала при необходимости и без необходимости перекомпилировать мой код ОГРОМНО на мой взгляд, и если у вас есть инфраструктура, которая может позволить это легко (например, log4net), то я скажем, получилось красиво и многословно, и достаточно просто мысленно отфильтровать ссылки на код журнала, если вам нужно вернуться к самому коду.
Я прошу прощения, если я звучу в обороне или разглагольствования, я не имею в виду это в любом отношении. Я просто хотел представить немного больше информации о том, как и почему я настраивал логирование с помощью log4net в упомянутом методе. 8 ^ D