DefaultTraceListener Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Tillhandahåller standardutdatametoderna och beteendet för spårning.
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
- Arv
- Arv
- Attribut
Exempel
I följande kodexempel beräknas binomiella koefficienter, som är värden som används i sannolikhet och statistik. I det här exemplet används en DefaultTraceListener för att spåra resultat och loggfel. Den skapar en ny DefaultTraceListener, lägger till den i Trace.Listeners samlingen och anger LogFileName egenskapen till loggfilen som anges i kommandoradsargumenten.
Om ett fel identifieras när indataparametern bearbetas, eller om CalcBinomial funktionen utlöser ett undantag, Fail loggar metoden och visar ett felmeddelande. Om egenskapen AssertUiEnabled är falseskrivs felmeddelandet också till konsolen. När resultatet har beräknats Write(String) skriver metoderna och WriteLine(String) resultatet till loggfilen.
Metoderna Fail, Writeoch WriteLine gör att spårningsinformation endast skrivs till DefaultTraceListener. Om du vill skriva spårningsinformation till alla lyssnare i Trace.Listeners samlingen använder du Failklassens metoder Write , WriteLineoch Trace .
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
Kommentarer
En instans av den här klassen läggs automatiskt till i samlingarna Debug.Listeners och Trace.Listeners . Att uttryckligen lägga till en andra DefaultTraceListener orsakar duplicerade meddelanden i felsökningsprogrammets utdatafönster och duplicerade meddelanderutor för anspråk.
Som standard Write sänder metoderna och WriteLine meddelandet till funktionen Win32 OutputDebugString och metoden Debugger.Log .
Metoden Fail visar som standard en meddelanderuta när programmet körs i användargränssnittsläge. Den genererar även meddelandet med .WriteLine
Note
Visningen av meddelanderutan för Assert och Fail metodanrop beror på förekomsten av DefaultTraceListener. Om inte DefaultTraceListener finns i Listeners samlingen visas inte meddelanderutan.
DefaultTraceListener Kan tas bort genom att anropa Clear metoden för Listeners egenskapen (System.Diagnostics.Trace.Listeners.Clear()). För .NET Framework-appar kan du också använda elementet <clear> och <remove> element i appens konfigurationsfil.
Du måste aktivera spårning eller felsökning för att kunna använda en spårningslyssnare. Följande syntax är kompilatorspecifik. Om du använder andra kompilatorer än C# eller Visual Basic läser du dokumentationen för kompilatorn.
Om du vill aktivera felsökning i C# lägger du till
/d:DEBUGflaggan på kommandoraden för kompilatorn när du kompilerar koden eller lägger till#define DEBUGden överst i filen. I Visual Basic lägger du till flaggan/d:DEBUG=Truepå kommandoraden för kompilatorn.Om du vill aktivera spårning i C# lägger du till
/d:TRACEflaggan på kommandoraden för kompilatorn när du kompilerar koden eller lägger till#define TRACEden överst i filen. I Visual Basic lägger du till flaggan/d:TRACE=Truepå kommandoraden för kompilatorn.
För .NET Framework-appar kan du lägga till en spårningslyssnare genom att redigera konfigurationsfilen som motsvarar namnet på ditt program. I den här filen kan du lägga till en lyssnare, ange dess typ och ange dess parametrar, ta bort en lyssnare eller rensa alla lyssnare som tidigare angetts av programmet. Konfigurationsfilen ska formateras på liknande sätt som i följande exempel:
<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>
Konstruktorer
| Name | Description |
|---|---|
| DefaultTraceListener() |
Initierar en ny instans av DefaultTraceListener klassen med "Standard" som egenskapsvärde Name . |
Egenskaper
| Name | Description |
|---|---|
| AssertUiEnabled |
Hämtar eller anger ett värde som anger om programmet körs i användargränssnittsläge. |
| Attributes |
Hämtar attributen för anpassad spårningslyssnare som definierats i programkonfigurationsfilen. (Ärvd från TraceListener) |
| Filter |
Hämtar eller anger spårningsfiltret för spårningslyssnaren. (Ärvd från TraceListener) |
| IndentLevel |
Hämtar eller anger indragsnivån. (Ärvd från TraceListener) |
| IndentSize |
Hämtar eller anger antalet blanksteg i ett indrag. (Ärvd från TraceListener) |
| IsThreadSafe |
Hämtar ett värde som anger om spårningslyssnaren är trådsäker. (Ärvd från TraceListener) |
| LogFileName |
Hämtar eller anger namnet på en loggfil som du vill skriva spårnings- eller felsökningsmeddelanden till. |
| Name |
Hämtar eller anger ett namn för den här TraceListener. (Ärvd från TraceListener) |
| NeedIndent |
Hämtar eller anger ett värde som anger om utdata ska dras in. (Ärvd från TraceListener) |
| TraceOutputOptions |
Hämtar eller anger alternativen för spårningsutdata. (Ärvd från TraceListener) |
Metoder
| Name | Description |
|---|---|
| Close() |
När den åsidosätts i en härledd klass stänger utdataströmmen så att den inte längre tar emot spårning eller felsökning av utdata. (Ärvd från TraceListener) |
| CreateObjRef(Type) |
Skapar ett objekt som innehåller all relevant information som krävs för att generera en proxy som används för att kommunicera med ett fjärrobjekt. (Ärvd från MarshalByRefObject) |
| Dispose() |
Släpper alla resurser som används av TraceListener. (Ärvd från TraceListener) |
| Dispose(Boolean) |
Släpper de ohanterade resurser som används av TraceListener och släpper eventuellt de hanterade resurserna. (Ärvd från TraceListener) |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| Fail(String, String) |
Genererar eller visar detaljerade meddelanden och en stackspårning för en försäkran som alltid misslyckas. |
| Fail(String) |
Genererar eller visar ett meddelande och en stackspårning för en försäkran som alltid misslyckas. |
| Flush() |
När den åsidosättas i en härledd klass töms utdatabufferten. (Ärvd från TraceListener) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetLifetimeService() |
Föråldrad.
Hämtar det aktuella livslängdstjänstobjektet som styr livslängdsprincipen för den här instansen. (Ärvd från MarshalByRefObject) |
| GetSupportedAttributes() |
Hämtar anpassade attribut som stöds av spårningslyssnaren. (Ärvd från TraceListener) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| InitializeLifetimeService() |
Föråldrad.
Hämtar ett tjänstobjekt för livslängd för att styra livslängdsprincipen för den här instansen. (Ärvd från MarshalByRefObject) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| MemberwiseClone(Boolean) |
Skapar en ytlig kopia av det aktuella MarshalByRefObject objektet. (Ärvd från MarshalByRefObject) |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
| TraceData(TraceEventCache, String, TraceEventType, Int32, Object) |
Skriver spårningsinformation, ett dataobjekt och händelseinformation till lyssnarens specifika utdata. (Ärvd från TraceListener) |
| TraceData(TraceEventCache, String, TraceEventType, Int32, Object[]) |
Skriver spårningsinformation, en matris med dataobjekt och händelseinformation till lyssnarens specifika utdata. (Ärvd från TraceListener) |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[]) |
Skriver spårningsinformation, en formaterad matris med objekt och händelseinformation till lyssnarens specifika utdata. (Ärvd från TraceListener) |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32, String) |
Skriver spårningsinformation, ett meddelande och händelseinformation till lyssnarens specifika utdata. (Ärvd från TraceListener) |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32) |
Skriver spårnings- och händelseinformation till lyssnarens specifika utdata. (Ärvd från TraceListener) |
| TraceTransfer(TraceEventCache, String, Int32, String, Guid) |
Skriver spårningsinformation, ett meddelande, en relaterad aktivitetsidentitet och händelseinformation till lyssnarens specifika utdata. (Ärvd från TraceListener) |
| Write(Object, String) |
Skriver ett kategorinamn och värdet för objektets ToString() metod till lyssnaren som du skapar när du implementerar TraceListener klassen. (Ärvd från TraceListener) |
| Write(Object) |
Skriver värdet för objektets ToString() -metod till lyssnaren som du skapar när du implementerar TraceListener klassen. (Ärvd från TraceListener) |
| Write(String, String) |
Skriver ett kategorinamn och ett meddelande till lyssnaren som du skapar när du implementerar TraceListener klassen. (Ärvd från TraceListener) |
| Write(String) |
Skriver utdata till |
| WriteIndent() |
Skriver indraget till lyssnaren som du skapar när du implementerar den här klassen och återställer NeedIndent egenskapen till |
| WriteLine(Object, String) |
Skriver ett kategorinamn och värdet för objektets ToString() metod till lyssnaren som du skapar när du implementerar TraceListener klassen, följt av en radavgränsare. (Ärvd från TraceListener) |
| WriteLine(Object) |
Skriver värdet för objektets ToString() -metod till lyssnaren du skapar när du implementerar TraceListener klassen, följt av en radavslutare. (Ärvd från TraceListener) |
| WriteLine(String, String) |
Skriver ett kategorinamn och ett meddelande till lyssnaren som du skapar när du implementerar TraceListener klassen, följt av en radavgränsare. (Ärvd från TraceListener) |
| WriteLine(String) |
Skriver utdata till |
Gäller för
Trådsäkerhet
Den här klassen är trådsäker.