Как разделить вывод консоли на входные и выходные потоки?C#

Место общения программистов C#
Ответить
Anonymous
 Как разделить вывод консоли на входные и выходные потоки?

Сообщение Anonymous »

Мое консольное приложение содержит несколько объектов, каждый из которых выполняется в отдельной задаче. Все эти объекты используют Microsoft.Extensions.Logging.ILogger для вывода своего состояния на консоль. Через поток ввода консоли я ввожу команды для управления этими объектами. Дело в том, что когда я ввожу команды (например, "остановить все"), консоль выглядит так:
14:43:11 dbug: Program[0] [Object 1] I am Object One!
st14:43:12 info: Program[0] [Object 2] I am Object Two!
14:43:12 info: Program[0] [Object 1] I am Object One!
op 14:43:13 info: Program[0] [Object 3] I am Object Three!
14:43:13 info: Program[0] [Object 2] I am Object Two!
14:43:14 info: Program[0] [Object 3] I am Object Three!
14:43:14 info: Program[0] [Object 1] I am Object One!
al14:43:15 dbug: Program[0] [Object 2] I am Object Two!
l14:43:15 info: Program[0] [Object 1] I am Object One!

Желаемое поведение — иметь отдельную строку в нижней части буфера консоли, которая будет отображать текущий ввод из входного потока, ПОКА я набираю команду, например:
р>
14:43:11 dbug: Program[0] [Object 1] I am Object One!
14:43:12 info: Program[0] [Object 2] I am Object Two!
14:43:12 info: Program[0] [Object 1] I am Object One!
14:43:13 info: Program[0] [Object 3] I am Object Three!
14:43:13 info: Program[0] [Object 2] I am Object Two!
14:43:14 info: Program[0] [Object 3] I am Object Three!
14:43:14 info: Program[0] [Object 1] I am Object One!
14:43:15 dbug: Program[0] [Object 2] I am Object Two!
14:43:15 info: Program[0] [Object 1] I am Object One!
Your command >>> stop all


Подробнее здесь: https://stackoverflow.com/questions/789 ... ut-streams
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»