Ответ 1
C:\>yourconsoleapp.exe > yourtextfile.txt
edit: Предполагается, что ваше консольное приложение не требует ввода пользователем.
Возможный дубликат:
Зеркальное отображение вывода консоли в файл
У меня консольное приложение на С#, и я хочу войти в текстовый файл, каждый текст появляется на экране. Как это сделать?
К сожалению, эта тема закрыта, несмотря на мой комментарий о выводной копии Mirroring console в файл. Принятое сообщение как ответ этой нитью НЕ ПРАВИЛЬНО. Так почему бы не задать вопрос еще раз? Я использую консоль в интерактивном режиме и хочу получить копию всего текста на консоли в текстовом файле. SOS
C:\>yourconsoleapp.exe > yourtextfile.txt
edit: Предполагается, что ваше консольное приложение не требует ввода пользователем.
Замените все ссылки на класс Console классом System.Diagnostics.Trace. Вы можете добавить ConsoleTraceListener и TextWriterTraceListener, а затем все, что вы выведете на консоль, окажется в обоих местах.
Вы можете использовать Console.SetOut для перенаправления вывода в файл, но затем вы также не сможете выводить на консоль, кроме вы использовали TextWriter, который транслировался на оба.
Вы можете попробовать System.Diagnostics.Trace, а затем добавить слушателей как к консоли, так и к файлу.
<configuration>
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<listeners>
<add name="configConsoleListener"
type="System.Diagnostics.ConsoleTraceListener" />
<add name="fileLogger"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="LogFile.log" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
Это может быть слишком упрощенным, но в командной строке, если вы это сделаете:
C:\>MyApplication >> output.txt
Это будет записывать все выходные данные из данного приложения в файл output.txt
Если вам действительно не нужно программное решение, это может сделать трюк.
Простой результат поиска Google: здесь
Извините, я больше не программирую С#, но я проверил код, и это имеет смысл в этом подходе:)
Используйте log4j.
<appender name="FileAppender" type="log4net.Appender.FileAppender"> <file value="log-file.txt" /> <appendToFile value="true" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] -%message%newline" /> </layout> </appender> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] -%message%newline" /> </layout> </appender>
Поместите это как член любого класса, к которому вы хотите войти:
private static readonly ILog log = LogManager.GetLogger(typeof (Foo));
Вставьте строку, подобную этой, для регистрации:
log.Debug( "Привет, мир!" );