Похоже, что тип System.Diagnostics.Trace
идеально подходит для этого. Внедрите свои изменения в два этапа:
На первом этапе вы добавляете ConsoleTraceListener в свое приложение и конвертируете все ваши текущие вызовы в консоль для записи в Trace. Это сохранит только ваше существующее поведение, но позволит вам легко вносить изменения в ваш новый вывод.
Для фазы 2 вы реализуете новый TraceListener, который вы можете присоединить вместо ConsoleTraceListener, который делает с сообщениями все, что вы хотите. Это может включать прослушивание соединения из предложенного вами системного или консольного приложения. Еще лучше, я уверен, что немного погуглив, покажет вам TraceListener, который уже делает то, что вы хотите.
Что касается фактического механизма передачи сообщения, я рекомендую использовать стандартный подход SysLog . Это дает преимущества работы с существующим программным обеспечением для клиента, повышает вероятность того, что вы найдете существующий TraceListener , и многие из существующих клиентов системного журнала принесут в качестве бонуса автоматизированный анализ данных. *