У меня вызывается метод.
public void doSomethingElse()
{
Debug.WriteLine(color);
}
Сам метод выводит на консоль строку. Как мне после вывода строки на консоль, выведенную информацию записать в файл. Изначально переменную не могу записать в файл так как выполняю юнит тесты.
У механизмов отладочного вывода (Debug.WriteLine
) и трассировки (Trace.WriteLine
) есть стандартные способы перенаправления - Trace Listeners.
По умолчанию вывод Debug.WriteLine
уходит вникуда, т.к. ни одного Trace Listener-а для него не задано. При отладке сам отладчик (студия) добавляет Trace Listener, который перенаправляет вывод в окно отладчика (Output), а вовсе не на консоль.
Так что вам не надо перенаправлять вывод на консоль в файл. Вам нужно просто добавить стандартный TextWriterTraceListener
в Debug.Listeners
и вы получите копию отладочного вывода в файле. Вот минимальный код:
using System.Diagnostics;
namespace ConsoleApp3
{
class Program
{
static void Main(string[] args)
{
// в инициализации тестов, один раз
Debug.Listeners.Add(new TextWriterTraceListener("log.txt"));
Debug.WriteLine("test");
// после прогона тестов
// чтобы записать буфер на диск и не потерять хвост лога
Debug.Flush();
}
}
}
При трассировке (использовании Trace.WriteLine
) listener-ы можно задавать прямо в конфиге, это достаточно подробно расписано в howto в MSDN:
<configuration>
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<listeners>
<add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="TextWriterOutput.log" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
Trace.TraceInformation("Test message.");
// You must close or flush the trace to empty the output buffer.
Trace.Flush();
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть метод, который добавляет нового пользователяЕсли пользователь добавлен - перенаправляет на index, иначе возвращает вьюшку с моделью
Unity, C#Есть молдель с animator, в котором уже настроены стейты-анимации и параметры для переходов между ними
Хочу прочитать JSON файл с использованием View модели (класса с названием всех переменных), но возникла загвоздкаНекоторые имена в файле имеют...
Представим ситуацию: В Visual Studio есть решение, которое состоит из 3 проектовВ каждом из проектов в файле app