Поделиться через


Trace Класс

Определение

Предоставляет набор методов и свойств, используемых при трассировке выполнения кода. Этот класс не наследуется.

public ref class Trace sealed
public sealed class Trace
type Trace = class
Public NotInheritable Class Trace
Наследование
Trace

Примеры

В следующем примере используется Trace для указания начала и окончания выполнения программы. В примере также используются методы Trace.Indent и Trace.Unindent для различения выходных данных трассировки. Более полный пример использования см. Traceв разделе Практическое руководство. Добавление операторов трассировки в код приложения.

// Specify /DTRACE when compiling.

#using <System.dll>
using namespace System;
using namespace System::Diagnostics;

int main()
{
   #if defined(TRACE)
   Trace::Listeners->Add( gcnew TextWriterTraceListener( Console::Out ) );
   Trace::AutoFlush = true;
   Trace::Indent();
   Trace::WriteLine( "Entering Main" );
   #endif
   Console::WriteLine( "Hello World." );
   #if defined(TRACE)
   Trace::WriteLine( "Exiting Main" );
   Trace::Unindent();
   #endif
   return 0;
}
// Specify /d:TRACE when compiling.

using System;
using System.Diagnostics;

class Test
{
    static void Main()
    {
       Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));
       Trace.AutoFlush = true;
       Trace.Indent();
       Trace.WriteLine("Entering Main");
       Console.WriteLine("Hello World.");
       Trace.WriteLine("Exiting Main");
       Trace.Unindent();
    }
}
' Specify /d:TRACE=True when compiling.

Imports System.Diagnostics

Class Test
    
    Shared Sub Main()
    
        Trace.Listeners.Add(New TextWriterTraceListener(Console.Out))
        Trace.AutoFlush = True
        Trace.Indent()
        Trace.WriteLine("Entering Main")
        Console.WriteLine("Hello World.")
        Trace.WriteLine("Exiting Main")
        Trace.Unindent()
        
    End Sub

End Class

Комментарии

Свойства и методы в Trace классе можно использовать для инструментирования сборок выпуска. Инструментирование позволяет отслеживать работоспособность приложения, работающего в реальных параметрах. Трассировка помогает изолировать проблемы и устранять их, не нарушая работу системы.

Этот класс предоставляет методы для отображения диалогового Assert окна и для выдачи утверждения, которое всегда Failбудет . Этот класс предоставляет методы записи в следующих вариантах:

Классы BooleanSwitch и TraceSwitch предоставляют средства для динамического управления выходными данными трассировки. В платформа .NET Framework приложениях можно изменять значения этих параметров без перекомпиляции приложения. Сведения об использовании файла конфигурации для установки коммутатора в приложении платформа .NET Framework смSwitch. в разделе Класс и Практическое руководство. Create, инициализация и настройка параметров трассировки.

Вы можете настроить целевой объект выходных данных трассировки, добавив TraceListener экземпляры в коллекцию Listeners или удалив их из коллекции. Коллекция Listeners совместно используется классами Debug и Trace ; добавление прослушивателя трассировки в любой класс добавляет прослушиватель к обоим классам. По умолчанию выходные данные трассировки создаются с помощью DefaultTraceListener класса .

Примечание

Добавление прослушивателя трассировки в Listeners коллекцию может привести к возникновению исключения при трассировке, если ресурс, используемый прослушивателем трассировки, недоступен. Условия и вызываемое исключение зависят от прослушивателя трассировки и не могут быть перечислены в этом разделе. Может быть полезно размещать вызовы Trace методов в try/catch блоках для обнаружения и обработки исключений из прослушивателей трассировки.

Примечание

При добавлении прослушивателей трассировки в код с частичным доверием SecurityException возникнет исключение, так как для добавления прослушивателей трассировки требуется UnmanagedCode разрешение. Чтобы отследить частично доверенный код, выполняемый в песочнице в Visual Studio, не добавляйте прослушиватели трассировки. Вместо этого просмотрите Trace сообщения и Debug в окне Вывод .

Класс Trace предоставляет свойства для получения или задания уровня и IndentSize, а также того, следует ли выполнять AutoFlush после каждой Indent записи.

В платформа .NET Framework приложениях можно задать AutoFlush и IndentSize дляTrace, изменив файл конфигурации, соответствующий имени приложения. Файл конфигурации должен быть отформатирован, как показано в следующем примере:

<configuration>  
  <system.diagnostics>  
    <trace autoflush="false" indentsize="3" />  
  </system.diagnostics>  
</configuration>  

Атрибут ConditionalAttribute применяется к методам .Trace Компиляторы, поддерживающие ConditionalAttribute , игнорируют вызовы этих методов, если TRACE не определен как символ условной компиляции. Сведения о поддержке и синтаксисе для определения символа условной компиляции см. в документации ConditionalAttribute компилятора.

Примечание

В проектах Visual Studio по умолчанию символ условной DEBUG компиляции определяется для отладочных сборок, а TRACE символ — для отладочных сборок и сборок выпуска.

Чтобы определить символ условной TRACE компиляции в C#, добавьте /d:TRACE параметр в командную строку компилятора при компиляции кода с помощью командной строки или добавьте #define TRACE в начало файла. В Visual Basic добавьте параметр в /d:TRACE=True командную строку компилятора или добавьте #Const TRACE=True в файл .

ConditionalAttribute не поддерживается компилятором C++. Чтобы обеспечить эквивалентные функциональные возможности, необходимо заключить вызовы методов Trace в блок и добавить /DTRACE параметр в #if defined(TRACE) ... #endif командную строку компилятора или добавить #define TRACE в файл .

Свойства

AutoFlush

Возвращает или задает вызов Flush() в Listeners после каждой операции записи.

CorrelationManager

Получает диспетчер корреляции для потока для данной трассировки.

IndentLevel

Возвращает или задает уровень отступа.

IndentSize

Возвращает или задает число пробелов в отступе.

Listeners

Получает коллекцию прослушивателей, отслеживающую выходные данные трассировки.

UseGlobalLock

Получает или задает значение, указывающее, следует ли использовать глобальную блокировку.

Методы

Assert(Boolean)

Проверяет условие. Если условие имеет значение false, отображается окно сообщения со стеком вызовов.

Assert(Boolean, String)

Проверяет условие. Если условие имеет значение false, выдается указанное сообщение и отображается окно сообщения со стеком вызовов.

Assert(Boolean, String, String)

Проверяет условие. Если условие имеет значение false, выдается два указанных сообщения и отображается окно сообщения со стеком вызовов.

Close()

Очищает выходной буфер, а затем закрывает Listeners.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Fail(String)

Выдает указанное сообщение об ошибке.

Fail(String, String)

Выдает сообщение об ошибке и подробное сообщение об ошибке.

Flush()

Очищает выходной буфер и вызывает запись буферизованных данных в Listeners.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
Indent()

Увеличивает текущее значение IndentLevel на единицу.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
Refresh()

Обновляет данные конфигурации трассировки.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
TraceError(String)

Записывает сообщение об ошибке в прослушиватели трассировки в коллекции Listeners, используя указанное сообщение.

TraceError(String, Object[])

Записывает сообщение об ошибке в прослушиватели трассировки в коллекции Listeners, используя для этого указанный массив объектов и сведения о форматировании.

TraceInformation(String)

Записывает информационное сообщение в прослушиватели трассировки коллекции Listeners, используя для этого указанное сообщение.

TraceInformation(String, Object[])

Записывает информационное сообщение в прослушиватели трассировки в коллекции Listeners, используя для этого указанный массив объектов и сведения о форматировании.

TraceWarning(String)

Записывает предупреждение в прослушиватели трассировки в коллекции Listeners, используя указанное сообщение.

TraceWarning(String, Object[])

Записывает предупреждение в прослушиватели трассировки в коллекции Listeners, используя для этого указанный массив объектов и сведения о форматировании.

Unindent()

Уменьшает текущее значение IndentLevel на единицу.

Write(Object)

Записывает значение метода ToString() объекта в прослушиватели трассировки в коллекции Listeners.

Write(Object, String)

Записывает имя категории и значение метода ToString() объекта в прослушиватели трассировки в коллекции Listeners.

Write(String)

Записывает сообщение в прослушиватели трассировки в коллекции Listeners.

Write(String, String)

Записывает имя категории и сообщение в прослушиватели трассировки в коллекции Listeners.

WriteIf(Boolean, Object)

Записывает значение метода ToString() объекта в прослушиватели трассировки в коллекции Listeners, если условие — true.

WriteIf(Boolean, Object, String)

Записывает имя категории и значение метода ToString() объекта в прослушиватели трассировки в коллекции Listeners, если задано условие true.

WriteIf(Boolean, String)

Записывает сообщение в прослушиватели трассировки в коллекции Listeners, если задано условие true.

WriteIf(Boolean, String, String)

Записывает имя категории и сообщение в прослушиватели трассировки в коллекции Listeners, если условие равно true.

WriteLine(Object)

Записывает значение метода ToString() объекта в прослушиватели трассировки в коллекции Listeners.

WriteLine(Object, String)

Записывает имя категории и значение метода ToString() объекта в прослушиватели трассировки в коллекции Listeners.

WriteLine(String)

Записывает сообщение в прослушиватели трассировки в коллекции Listeners.

WriteLine(String, String)

Записывает имя категории и сообщение в прослушиватели трассировки в коллекции Listeners.

WriteLineIf(Boolean, Object)

Записывает значение метода ToString() объекта в прослушиватели трассировки в коллекции Listeners, если условие — true.

WriteLineIf(Boolean, Object, String)

Записывает имя категории и значение метода ToString() объекта в прослушиватели трассировки в коллекции Listeners, если задано условие true.

WriteLineIf(Boolean, String)

Записывает сообщение в прослушиватели трассировки в коллекции Listeners, если задано условие true.

WriteLineIf(Boolean, String, String)

Записывает имя категории и сообщение в прослушиватели трассировки в коллекции Listeners, если условие равно true.

События

Refreshing

Происходит, TraceSource когда требуется обновить из конфигурации.

Применяется к

Потокобезопасность

Данный тип потокобезопасен.

См. также раздел