Что Console.WriteLine() пишет во время выпуска?
Поэтому мне было интересно, когда при запуске обычного приложения winforms, где Console.WriteLine()
метод написать в?
Я знаю, что во время отладки он с удовольствием выплюнет весь текст в выходных данных отладки, но куда все идет, когда я больше не отлаживаю и не использую программу, как это сделал бы конечный пользователь? Это входит в какой-то кеш? Глубины оперативной памяти? В отпуск в Латвию?
И если он записывает что-то, что доступно во время выполнения, можем ли мы как-то показать это пользователю или записать все в текстовый файл или что-то еще?
3 ответа
Вы говорите о Console.WriteLine или Debug.WriteLine?
Console.WriteLine работает аналогично при настройке отладки и выпуска. Если вы сконфигурируете свой проект как Консольное приложение и запустите его в режиме выпуска, вы сначала получите консоль в фоновом режиме, где вы увидите все свои результаты.
Debug.WriteLine имеет условный оператор, если DEBUG не определен. Это ничего не пишет.
Console.WriteLine()
будет писать на стандартный вывод в режиме отладки или выпуска. Таким образом, у вас есть способ поймать его в режиме релиза.
Есть альтернатива с Debug.WriteLine, которая, если я помню, не скомпилирована в релизе.
Я думаю, что ваш вопрос действительно о желании захватить Console.WriteLine()
, Первый, Console.WriteLine()
выполняет запись в стандартный поток вывода, который можно прочитать, подключив окно консоли или с помощью других средств перехвата потока.
Если вы хотите захватить отладочную или регистрационную информацию, которую хотите использовать
System.Diagnostics.Trace.WriteLine
Затем, чтобы отправить свой вывод в файл, вы можете установить TraceListener, который может быть файлом или чем-то еще.