Сначала немного справочной информации о ситуации. У меня есть основное приложение (назовем его Core) и некоторые второстепенные приложения (назовем их основными заданиями). Основная задача Core - убедиться, что каждая заданная основная работа выполняется в соответствии с расписанием указанной работы. Все это разработано в .NET C#Трассировка на разные логфайлы из одного приложения
Я хотел бы создать среду, в которой каждое задание ядра может отслеживать информацию для разных лог-файлов. Я считал, что я использую простые прошивки, но я считаю, что для этого должно быть более элегантное решение.
Мне кажется, что я мог бы использовать встроенные TraceSource
и слушатели. Я сделал TextWriterTraceListener
для каждой работы и начал отслеживать. Результат: каждое задание отслеживает информацию каждому слушателю.
Назад к чертежной доске. Я изучил его немного больше и теперь вижу, насколько глупым был мой первый подход. Теперь я создал источник для каждой работы и слушателя для каждого источника. В коде я указываю, какой источник мне нравится отслеживать. Но с небольшим успехом :(
Отрывок из app.config:
<system.diagnostics>
<switches>
<add name="AMSSUY" value="All"/>
</switches>
<sources>
<source name="AMSSUY_TraceSource">
<listeners>
<add name="AMSSUY_Listener" type="System.Diagnostics.TextWriterTraceListener"
initializeData="ksltest.log"/>
</listeners>
</source>
</sources>
</system.diagnostics>
фрагмент из кода:
private static TraceSource log = new TraceSource("AMSSUY_TraceSource");
log.TraceEvent(TraceEventType.Information, 1, "test test test");
Я попытался сделать общие слушателей, а также, и это не помогло Не удивительно, потому что, насколько я могу судить, цель общих слушателей состоит в том, чтобы другие источники могли делиться одним и тем же слушателем.
На некоторых форумах люди продолжают говорить о log4net - ca n, которые решают мою проблему? У меня нет абсолютно никакого опыта.
Что я хотел бы знать: есть ли элегантное решение моей проблемы? Можно ли решить мою проблему с помощью трассировщиков и слушателей?
Я предполагаю, что переход на Log4Net не является вариантом? – Liath
Если Log4Net может решить мою проблему, тогда это вариант. Но, как уже упоминалось, у меня нет предыдущего опыта. –