Что Console.WriteLine() пишет во время выпуска?

Поэтому мне было интересно, когда при запуске обычного приложения winforms, где Console.WriteLine() метод написать в?

Я знаю, что во время отладки он с удовольствием выплюнет весь текст в выходных данных отладки, но куда все идет, когда я больше не отлаживаю и не использую программу, как это сделал бы конечный пользователь? Это входит в какой-то кеш? Глубины оперативной памяти? В отпуск в Латвию?

И если он записывает что-то, что доступно во время выполнения, можем ли мы как-то показать это пользователю или записать все в текстовый файл или что-то еще?

3 ответа

Решение

Вы говорите о Console.WriteLine или Debug.WriteLine?

Console.WriteLine работает аналогично при настройке отладки и выпуска. Если вы сконфигурируете свой проект как Консольное приложение и запустите его в режиме выпуска, вы сначала получите консоль в фоновом режиме, где вы увидите все свои результаты.Это проект Winform, настроенный для запуска в качестве консольного проекта и записывающий

Debug.WriteLine имеет условный оператор, если DEBUG не определен. Это ничего не пишет.

Console.WriteLine() будет писать на стандартный вывод в режиме отладки или выпуска. Таким образом, у вас есть способ поймать его в режиме релиза.

Есть альтернатива с Debug.WriteLine, которая, если я помню, не скомпилирована в релизе.

Я думаю, что ваш вопрос действительно о желании захватить Console.WriteLine(), Первый, Console.WriteLine() выполняет запись в стандартный поток вывода, который можно прочитать, подключив окно консоли или с помощью других средств перехвата потока.

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

System.Diagnostics.Trace.WriteLine

Затем, чтобы отправить свой вывод в файл, вы можете установить TraceListener, который может быть файлом или чем-то еще.

Другие вопросы по тегам