Правильный способ обработки подробного вывода консоли в C # - PullRequest
5 голосов
/ 07 октября 2011

Часто, когда я разрабатываю программу, я добавляю несколько операторов console.writeline, чтобы сообщить мне, что приложение делает во время отладки.Часто я обнаруживаю, что удаляю их и добавляю обратно, чтобы сохранить код в чистоте.Я не нашел, казалось бы, эффективного способа поместить их изящно в код.

Мне было интересно, что делают другие люди или что считается наилучшей практикой для этого.Я не уверен, могу ли я использовать трассировку или нет, потому что я не отлаживаю на компьютере с установленной Visual Studio (на сервере, который я публикую, его нет).

Существует ли какой-либо метод на основе АОП для атаки?В идеале я не хотел бы выводить данные в производственном коде, потому что запись в консоль, кажется, замедляет работу приложения.

Заранее спасибо!

Ответы [ 4 ]

8 голосов
/ 07 октября 2011

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

3 голосов
/ 07 октября 2011

Есть много вариантов выхода из системы.MS Enterprise Library и log4net - два очень популярных варианта.В каждом из них вы можете контролировать уровень регистрации через файл конфигурации, так что в dev вы можете вести очень подробные записи, но в prod вы можете подавлять все, кроме ошибок, например - все без изменения кода.

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

2 голосов
/ 07 октября 2011

Корпоративная библиотека Microsoft Блок приложения ведения журнала может быть выбором.

0 голосов
/ 07 октября 2011

Вы пробовали писать только в режиме отладки?Я считаю, что правильный способ сделать это так:

#if DEBUG
  Console.WriteLine("Debug stuff here");
#endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...