DefaultTraceListener Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Poskytuje výchozí metody výstupu a chování trasování.
public ref class DefaultTraceListener : System::Diagnostics::TraceListener
public class DefaultTraceListener : System.Diagnostics.TraceListener
[System.Runtime.InteropServices.ComVisible(false)]
public class DefaultTraceListener : System.Diagnostics.TraceListener
type DefaultTraceListener = class
inherit TraceListener
[<System.Runtime.InteropServices.ComVisible(false)>]
type DefaultTraceListener = class
inherit TraceListener
Public Class DefaultTraceListener
Inherits TraceListener
- Dědičnost
- Dědičnost
- Atributy
Příklady
Následující příklad kódu vypočítá binomické koeficienty, které jsou hodnoty používané v pravděpodobnosti a statistikách. Tento příklad používá DefaultTraceListener k trasování výsledků a chyb protokolu. Vytvoří novou DefaultTraceListener, přidá ji do Trace.Listeners kolekce a nastaví LogFileName vlastnost na soubor protokolu zadaný v argumentech příkazového řádku.
Pokud se při zpracování vstupního parametru zjistí chyba nebo pokud CalcBinomial funkce vyvolá výjimku, Fail protokoly metody a zobrazí chybovou zprávu.
AssertUiEnabled Pokud je falsevlastnost , chybová zpráva je také zapsána do konzoly. Při úspěšném Write(String) výpočtu výsledku zapisuje výsledky do souboru protokolu.WriteLine(String)
Fail, Writea WriteLine metody způsobí, že trasovací informace budou zapsány pouze do DefaultTraceListener. Chcete-li psát trasovací informace všem naslouchacím procesům Trace.Listeners v kolekci, použijte Fail, Writea WriteLine metody Trace třídy.
using System;
using System.Diagnostics;
using Microsoft.VisualBasic;
class Binomial
{
// args(0) is the number of possibilities for binomial coefficients.
// args(1) is the file specification for the trace log file.
public static void Main(string[] args)
{
decimal possibilities;
decimal iter;
// Remove the original default trace listener.
Trace.Listeners.RemoveAt(0);
// Create and add a new default trace listener.
DefaultTraceListener defaultListener;
defaultListener = new DefaultTraceListener();
Trace.Listeners.Add(defaultListener);
// Assign the log file specification from the command line, if entered.
if (args.Length>=2)
{
defaultListener.LogFileName = args[1];
}
// Validate the number of possibilities argument.
if (args.Length>=1)
// Verify that the argument is a number within the correct range.
{
try
{
const decimal MAX_POSSIBILITIES = 99;
possibilities = Decimal.Parse(args[0]);
if (possibilities<0||possibilities>MAX_POSSIBILITIES)
{
throw new Exception(String.Format("The number of possibilities must " +
"be in the range 0..{0}.", MAX_POSSIBILITIES));
}
}
catch(Exception ex)
{
string failMessage = String.Format("\"{0}\" " +
"is not a valid number of possibilities.", args[0]);
defaultListener.Fail(failMessage, ex.Message);
if (!defaultListener.AssertUiEnabled)
{
Console.WriteLine(failMessage+ "\n" +ex.Message);
}
return;
}
}
else
{
// Report that the required argument is not present.
const string ENTER_PARAM = "Enter the number of " +
"possibilities as a command line argument.";
defaultListener.Fail(ENTER_PARAM);
if (!defaultListener.AssertUiEnabled)
{
Console.WriteLine(ENTER_PARAM);
}
return;
}
for(iter=0; iter<=possibilities; iter++)
{
decimal result;
string binomial;
// Compute the next binomial coefficient and handle all exceptions.
try
{
result = CalcBinomial(possibilities, iter);
}
catch(Exception ex)
{
string failMessage = String.Format("An exception was raised when " +
"calculating Binomial( {0}, {1} ).", possibilities, iter);
defaultListener.Fail(failMessage, ex.Message);
if (!defaultListener.AssertUiEnabled)
{
Console.WriteLine(failMessage+ "\n" +ex.Message);
}
return;
}
// Format the trace and console output.
binomial = String.Format("Binomial( {0}, {1} ) = ", possibilities, iter);
defaultListener.Write(binomial);
defaultListener.WriteLine(result.ToString());
Console.WriteLine("{0} {1}", binomial, result);
}
}
public static decimal CalcBinomial(decimal possibilities, decimal outcomes)
{
// Calculate a binomial coefficient, and minimize the chance of overflow.
decimal result = 1;
decimal iter;
for(iter=1; iter<=possibilities-outcomes; iter++)
{
result *= outcomes+iter;
result /= iter;
}
return result;
}
}
Imports System.Diagnostics
Module Binomial
' args(0) is the number of possibilities for binomial coefficients.
' args(1) is the file specification for the trace log file.
Sub Main(ByVal args() As String)
Dim possibilities As Decimal
Dim iter As Decimal
' Remove the original default trace listener.
Trace.Listeners.RemoveAt(0)
' Create and add a new default trace listener.
Dim defaultListener As DefaultTraceListener
defaultListener = New DefaultTraceListener
Trace.Listeners.Add(defaultListener)
' Assign the log file specification from the command line, if entered.
If args.Length >= 2 Then
defaultListener.LogFileName = args(1)
End If
' Validate the number of possibilities argument.
If args.Length >= 1 Then
' Verify that the argument is a number within the correct range.
Try
Const MAX_POSSIBILITIES As Decimal = 99
possibilities = Decimal.Parse(args(0))
If possibilities < 0 Or possibilities > MAX_POSSIBILITIES Then
Throw New Exception( _
String.Format("The number of possibilities must " & _
"be in the range 0..{0}.", MAX_POSSIBILITIES))
End If
Catch ex As Exception
Dim failMessage As String = String.Format("""{0}"" " & _
"is not a valid number of possibilities.", args(0))
defaultListener.Fail(failMessage, ex.Message)
If Not defaultListener.AssertUiEnabled Then
Console.WriteLine(failMessage & vbCrLf & ex.Message)
End If
Return
End Try
Else
' Report that the required argument is not present.
Const ENTER_PARAM As String = "Enter the number of " & _
"possibilities as a command line argument."
defaultListener.Fail(ENTER_PARAM)
If Not defaultListener.AssertUiEnabled Then
Console.WriteLine(ENTER_PARAM)
End If
Return
End If
For iter = 0 To possibilities
Dim result As Decimal
Dim binomial As String
' Compute the next binomial coefficient and handle all exceptions.
Try
result = CalcBinomial(possibilities, iter)
Catch ex As Exception
Dim failMessage As String = String.Format( _
"An exception was raised when " & _
"calculating Binomial( {0}, {1} ).", _
possibilities, iter)
defaultListener.Fail(failmessage, ex.Message)
If Not defaultListener.AssertUiEnabled Then
Console.WriteLine(failMessage & vbCrLf & ex.Message)
End If
Return
End Try
' Format the trace and console output.
binomial = String.Format("Binomial( {0}, {1} ) = ", _
possibilities, iter)
defaultListener.Write(binomial)
defaultListener.WriteLine(result.ToString)
Console.WriteLine("{0} {1}", binomial, result)
Next
End Sub
Function CalcBinomial(ByVal possibilities As Decimal, _
ByVal outcomes As Decimal) As Decimal
' Calculate a binomial coefficient, and minimize the chance of overflow.
Dim result As Decimal = 1
Dim iter As Decimal
For iter = 1 To possibilities - outcomes
result *= outcomes + iter
result /= iter
Next
Return result
End Function
End Module
Poznámky
Instance této třídy se automaticky přidá do Debug.Listeners kolekcí a Trace.Listeners kolekcí. Explicitní přidání druhé DefaultTraceListener způsobí duplicitní zprávy v okně výstupu ladicího programu a duplicitní pole zpráv pro asserts.
Ve výchozím nastavení vygenerují Write a WriteLine metody zprávu do funkce Win32 OutputDebugString a do Debugger.Log metody.
Metoda Fail ve výchozím nastavení zobrazí okno se zprávou, když aplikace běží v režimu uživatelského rozhraní; také generuje zprávu pomocí WriteLine.
Poznámka:
Zobrazení pole zprávy pro Assert volání metody a Fail závisí na přítomnosti DefaultTraceListener. Pokud v kolekci DefaultTraceListener není Listeners , pole se zprávou se nezobrazí. Lze DefaultTraceListener odebrat voláním Clear metody ve Listeners vlastnosti (System.Diagnostics.Trace.Listeners.Clear()). Pro aplikace .NET Framework můžete také použít <jasný> prvek a <element remove> v konfiguračním souboru vaší aplikace.
Pokud chcete použít naslouchací proces trasování, musíte povolit trasování nebo ladění. Následující syntaxe je specifická pro kompilátor. Pokud používáte jiné kompilátory než C# nebo Visual Basic, projděte si dokumentaci pro váš kompilátor.
Pokud chcete povolit ladění v jazyce C#, přidejte
/d:DEBUGpříznak do příkazového řádku kompilátoru při kompilaci kódu nebo přidejte#define DEBUGdo horní části souboru. V jazyce Visual Basic přidejte/d:DEBUG=Truepříznak do příkazového řádku kompilátoru.Pokud chcete povolit trasování v jazyce C#, přidejte
/d:TRACEpříznak do příkazového řádku kompilátoru při kompilaci kódu nebo přidejte#define TRACEna začátek souboru. V jazyce Visual Basic přidejte/d:TRACE=Truepříznak do příkazového řádku kompilátoru.
Pro aplikace rozhraní .NET Framework můžete přidat naslouchací proces trasování úpravou konfiguračního souboru, který odpovídá názvu vaší aplikace. V tomto souboru můžete přidat naslouchací proces, nastavit jeho typ a nastavit jeho parametry, odebrat naslouchací proces nebo vymazat všechny naslouchací procesy dříve nastavené aplikací. Konfigurační soubor by měl být naformátovaný podobně jako v následujícím příkladu:
<configuration>
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<listeners>
<remove name="Default" />
<add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="c:\myListener.log" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
Konstruktory
| Name | Description |
|---|---|
| DefaultTraceListener() |
Inicializuje novou instanci DefaultTraceListener třídy s "Default" jako Name jeho hodnota vlastnosti. |
Vlastnosti
| Name | Description |
|---|---|
| AssertUiEnabled |
Získá nebo nastaví hodnotu určující, zda aplikace běží v režimu uživatelského rozhraní. |
| Attributes |
Získá vlastní atributy naslouchacího procesu trasování definované v konfiguračním souboru aplikace. (Zděděno od TraceListener) |
| Filter |
Získá nebo nastaví filtr trasování pro naslouchací proces trasování. (Zděděno od TraceListener) |
| IndentLevel |
Získá nebo nastaví úroveň odsazení. (Zděděno od TraceListener) |
| IndentSize |
Získá nebo nastaví počet mezer v odsazení. (Zděděno od TraceListener) |
| IsThreadSafe |
Získá hodnotu označující, zda je naslouchací proces trasování bezpečný podproces. (Zděděno od TraceListener) |
| LogFileName |
Získá nebo nastaví název souboru protokolu pro zápis trasování nebo ladění zpráv do. |
| Name |
Získá nebo nastaví název pro tento TraceListener. (Zděděno od TraceListener) |
| NeedIndent |
Získá nebo nastaví hodnotu označující, zda se má výstup odsadit. (Zděděno od TraceListener) |
| TraceOutputOptions |
Získá nebo nastaví možnosti výstupu trasování. (Zděděno od TraceListener) |
Metody
| Name | Description |
|---|---|
| Close() |
Při přepsání v odvozené třídě zavře výstupní datový proud, takže již nepřijímá trasování nebo ladění výstup. (Zděděno od TraceListener) |
| CreateObjRef(Type) |
Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy serveru sloužícího ke komunikaci se vzdáleným objektem. (Zděděno od MarshalByRefObject) |
| Dispose() |
Uvolní všechny prostředky používané nástrojem TraceListener. (Zděděno od TraceListener) |
| Dispose(Boolean) |
Uvolní nespravované prostředky používané TraceListener a volitelně uvolní spravované prostředky. (Zděděno od TraceListener) |
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| Fail(String, String) |
Generuje nebo zobrazuje podrobné zprávy a trasování zásobníku pro kontrolní výraz, který vždy selže. |
| Fail(String) |
Vygeneruje nebo zobrazí zprávu a trasování zásobníku pro kontrolní výraz, který vždy selže. |
| Flush() |
Při přepsání v odvozené třídě vyprázdní výstupní vyrovnávací paměť. (Zděděno od TraceListener) |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetLifetimeService() |
Zastaralé.
Načte objekt služby aktuální životnosti, který řídí zásady životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
| GetSupportedAttributes() |
Získá vlastní atributy podporované naslouchacím procesem trasování. (Zděděno od TraceListener) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| InitializeLifetimeService() |
Zastaralé.
Získá objekt služby životnosti pro řízení zásad životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| MemberwiseClone(Boolean) |
Vytvoří mělkou kopii aktuálního MarshalByRefObject objektu. (Zděděno od MarshalByRefObject) |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
| TraceData(TraceEventCache, String, TraceEventType, Int32, Object) |
Zapisuje informace o trasování, datový objekt a informace o událostech do výstupu specifického pro naslouchací proces. (Zděděno od TraceListener) |
| TraceData(TraceEventCache, String, TraceEventType, Int32, Object[]) |
Zapisuje informace o trasování, pole datových objektů a informace o událostech do výstupu specifického pro naslouchací proces. (Zděděno od TraceListener) |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[]) |
Zapisuje informace o trasování, formátované pole objektů a informace o událostech do výstupu specifického pro naslouchací proces. (Zděděno od TraceListener) |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32, String) |
Zapíše informace o trasování, zprávu a informace o události do výstupu specifického pro naslouchací proces. (Zděděno od TraceListener) |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32) |
Zapíše informace o trasování a událostech do výstupu specifického pro naslouchací proces. (Zděděno od TraceListener) |
| TraceTransfer(TraceEventCache, String, Int32, String, Guid) |
Zapisuje informace o trasování, zprávu, související identitu aktivity a informace o událostech do výstupu specifického pro naslouchací proces. (Zděděno od TraceListener) |
| Write(Object, String) |
Zapíše název kategorie a hodnotu metody objektu ToString() do naslouchacího procesu, který vytvoříte při implementaci TraceListener třídy. (Zděděno od TraceListener) |
| Write(Object) |
Zapíše hodnotu metody objektu ToString() do naslouchacího procesu, který vytvoříte při implementaci TraceListener třídy. (Zděděno od TraceListener) |
| Write(String, String) |
Zapíše název kategorie a zprávu do naslouchacího procesu, který vytvoříte při implementaci TraceListener třídy. (Zděděno od TraceListener) |
| Write(String) |
Zapíše výstup do |
| WriteIndent() |
Zapíše odsazení do naslouchacího procesu, který vytvoříte při implementaci této třídy, a resetuje NeedIndent vlastnost na |
| WriteLine(Object, String) |
Zapíše název kategorie a hodnotu metody objektu ToString() do naslouchacího procesu, který vytvoříte při implementaci TraceListener třídy, následovaný ukončovacím znakem řádku. (Zděděno od TraceListener) |
| WriteLine(Object) |
Zapíše hodnotu metody objektu ToString() do naslouchacího procesu, který vytvoříte při implementaci TraceListener třídy, následované ukončovacím řádkem. (Zděděno od TraceListener) |
| WriteLine(String, String) |
Zapíše název kategorie a zprávu do naslouchacího procesu, který vytvoříte při implementaci TraceListener třídy, následovaný ukončovacím řádkem. (Zděděno od TraceListener) |
| WriteLine(String) |
Zapíše výstup do |
Platí pro
Bezpečný přístup z více vláken
Tato třída je bezpečná pro přístup z více vláken.