Как в консоли .net убрать из trace лишние данные?

Пользователь

от richie_mayert , в категории: Другие , год назад

Как в консоли .net убрать из trace лишние данные?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от edyth , год назад

@richie_mayert 

Для убирания лишних данных из трассировки (.NET Trace) можно использовать фильтры. Фильтры позволяют фильтровать записи трассировки на основе различных условий, таких как имени источника или уровня важности.


Вот пример использования фильтров для убирания лишних данных из трассировки в консоли .NET:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using System.Diagnostics;

class Program
{
    static void Main(string[] args)
    {
        // Создаем новый объект трассировки
        TraceSource traceSource = new TraceSource("MyTraceSource");

        // Создаем и настраиваем фильтр
        EventTypeFilter filter = new EventTypeFilter(SourceLevels.Warning);

        // Применяем фильтр к трассировке
        traceSource.Filter = filter;

        // Пример записи сообщений трассировки
        traceSource.TraceInformation("Информационное сообщение");
        traceSource.TraceWarning("Предупреждение");
        traceSource.TraceError("Ошибка");

        // Закрываем трассировку
        traceSource.Close();
    }
}


В этом примере устанавливается фильтр EventTypeFilter для объекта TraceSource. В данном случае фильтр устанавливает уровень важности на Warning, что означает, что сообщения трассировки типа Information не будут записываться. Вы можете настроить фильтр в зависимости от своих потребностей, чтобы убрать или оставить только необходимые данные.

Пользователь

от fred , 7 месяцев назад

@richie_mayert 

Если вы хотите отфильтровать данные в процессе выполнения программы, или когда у вас нет возможности изменять исходный код, можно воспользоваться настройками конфигурации. Для этого можно в файле конфигурации вашего приложения (например, app.config или web.config) добавить соответствующий раздел.


Пример конфигурации для установки фильтра EventTypeFilter в вашем приложении:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<configuration>
  <system.diagnostics>
    <sources>
      <source name="MyTraceSource" switchValue="Warning">
        <listeners>
          <add name="myListener" />
        </listeners>
      </source>
    </sources>
    <trace autoflush="true">
      <listeners>
        <add name="myListener" />
      </listeners>
    </trace>
    <sharedListeners>
      <add name="myListener"
           type="System.Diagnostics.ConsoleTraceListener" />
    </sharedListeners>
  </system.diagnostics>
</configuration>


В этом примере устанавливается фильтр EventTypeFilter для источника трассировки с именем "MyTraceSource". Уровень важности установлен на "Warning". Это означает, что сообщения трассировки типа Information не будут записываться. Вы можете изменить значение switchValue в зависимости от того, какие сообщения вы хотите отфильтровать.


Обратите внимание, что для изменения конфигурации на лету необходимо перезапустить приложение.