DefaultTraceListener Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Biztosítja a nyomkövetés alapértelmezett kimeneti metódusát és működését.
public ref class DefaultTraceListener : System::Diagnostics::TraceListener
[System.Runtime.InteropServices.ComVisible(false)]
public class DefaultTraceListener : System.Diagnostics.TraceListener
public class DefaultTraceListener : System.Diagnostics.TraceListener
[<System.Runtime.InteropServices.ComVisible(false)>]
type DefaultTraceListener = class
inherit TraceListener
type DefaultTraceListener = class
inherit TraceListener
Public Class DefaultTraceListener
Inherits TraceListener
- Öröklődés
- Attribútumok
Példák
Az alábbi példakód binomiális együtthatókat számít ki, amelyek a valószínűségben és a statisztikákban használt értékek. Ez a példa az DefaultTraceListener eredmények és a naplóhibák nyomon követésére használ. Létrehoz egy újat DefaultTraceListener, hozzáadja a Trace.Listeners gyűjteményhez, és beállítja a LogFileName tulajdonságot a parancssori argumentumokban megadott naplófájlra.
Ha hiba észlelhető a bemeneti paraméter feldolgozása során, vagy ha a CalcBinomial függvény kivételt jelez, a Fail metódus naplózza és hibaüzenetet jelenít meg. Ha a AssertUiEnabled tulajdonság az false, a hibaüzenet a konzolra is meg van írva. Az eredmény sikeres kiszámításakor a Write(String) metódusok az WriteLine(String) eredményeket a naplófájlba írják.
A Fail, Writeés WriteLine metódusok miatt a nyomkövetési információk csak a DefaultTraceListener. Ha nyomkövetési információkat szeretne írni a Trace.Listeners gyűjtemény összes figyelőjének, használja az Failosztály , Writeés WriteLine metódusait 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
Megjegyzések
Az osztály egy példánya automatikusan hozzáadódik a Debug.Listeners gyűjteményekhez.Trace.Listeners A második DefaultTraceListener elem explicit hozzáadása ismétlődő üzeneteket okoz a hibakereső kimeneti ablakában, és ismétlődő üzenetmezőket az állításokhoz.
Alapértelmezés szerint a Write metódusok a WriteLine Win32 OutputDebugString függvénynek és a metódusnak küldik az Debugger.Log üzenetet.
A Fail metódus alapértelmezés szerint egy üzenetmezőt jelenít meg, amikor az alkalmazás felhasználói felület módban fut; az üzenetet a következővel WriteLineis kibocsátja:
Note
A hívásokat és Fail metódushívásokat tartalmazó üzenetmező Assert megjelenítése az üzenet jelenlététől DefaultTraceListenerfügg. Ha az DefaultTraceListener üzenet nem szerepel a Listeners gyűjteményben, az üzenetmező nem jelenik meg. A DefaultTraceListener metódus Listeners a tulajdonságon (System.Diagnostics.Trace.Listeners.Clear()) való meghívásával Clear távolítható el. .NET Framework-alkalmazások esetében a <clear> elem és a <remove> elem is használható az alkalmazás konfigurációs fájljában.
A nyomkövetési vagy hibakeresési figyelő használatához engedélyeznie kell a nyomkövetést vagy a hibakeresést. Az alábbi szintaxis fordítóspecifikus. Ha nem C# vagy Visual Basic fordítót használ, tekintse meg a fordító dokumentációját.
Ha engedélyezni szeretné a hibakeresést a C#-ban, vegye fel a
/d:DEBUGjelölőt a fordító parancssorba a kód lefordításakor, vagy vegye fel#define DEBUGa fájl tetejére. A Visual Basic adja hozzá a/d:DEBUG=Truejelzőt a fordító parancssorához.Ha c#-ban szeretné engedélyezni a nyomkövetést, adja hozzá a
/d:TRACEjelölőt a fordító parancssorához a kód lefordításakor, vagy vegye fel#define TRACEa fájl tetejére. A Visual Basic adja hozzá a/d:TRACE=Truejelzőt a fordító parancssorához.
A .NET Framework-alkalmazásokhoz hozzáadhat nyomkövetési figyelőt az alkalmazás nevének megfelelő konfigurációs fájl szerkesztésével. Ebben a fájlban hozzáadhat egy figyelőt, beállíthatja annak típusát és paramétereit, eltávolíthat egy figyelőt, vagy törölheti az alkalmazás által korábban beállított összes figyelőt. A konfigurációs fájlt az alábbi példához hasonlóan kell formázni:
<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>
Konstruktorok
| Name | Description |
|---|---|
| DefaultTraceListener() |
Inicializálja az DefaultTraceListener osztály új példányát az "Alapértelmezett" tulajdonságértékkel Name . |
Tulajdonságok
| Name | Description |
|---|---|
| AssertUiEnabled |
Lekéri vagy beállít egy értéket, amely jelzi, hogy az alkalmazás felhasználói felület módban fut-e. |
| Attributes |
Lekéri az alkalmazáskonfigurációs fájlban definiált egyéni nyomkövetésfigyelő attribútumokat. (Öröklődés forrása TraceListener) |
| Filter |
Lekéri vagy beállítja a nyomkövetési szűrőt a nyomkövetési figyelőhöz. (Öröklődés forrása TraceListener) |
| IndentLevel |
Lekéri vagy beállítja a behúzási szintet. (Öröklődés forrása TraceListener) |
| IndentSize |
Lekéri vagy beállítja a behúzásban lévő szóközök számát. (Öröklődés forrása TraceListener) |
| IsThreadSafe |
Egy értéket kap, amely jelzi, hogy a nyomkövetési figyelő szálbiztos-e. (Öröklődés forrása TraceListener) |
| LogFileName |
Lekéri vagy beállítja egy naplófájl nevét nyomkövetési vagy hibakeresési üzenetek írásához. |
| Name |
Lekéri vagy beállítja ennek TraceListenera névnek a nevét. (Öröklődés forrása TraceListener) |
| NeedIndent |
Beolvas vagy beállít egy értéket, amely jelzi, hogy be szeretné-e húzni a kimenetet. (Öröklődés forrása TraceListener) |
| TraceOutputOptions |
Lekéri vagy beállítja a nyomkövetési kimeneti beállításokat. (Öröklődés forrása TraceListener) |
Metódusok
| Name | Description |
|---|---|
| Close() |
Ha felülbírál egy származtatott osztályban, bezárja a kimeneti adatfolyamot, hogy többé ne kapja meg a nyomkövetési vagy hibakeresési kimenetet. (Öröklődés forrása TraceListener) |
| CreateObjRef(Type) |
Létrehoz egy objektumot, amely tartalmazza a távoli objektumokkal való kommunikációhoz használt proxy létrehozásához szükséges összes releváns információt. (Öröklődés forrása MarshalByRefObject) |
| Dispose() |
Felszabadítja a .-hez használt összes erőforrást TraceListener. (Öröklődés forrása TraceListener) |
| Dispose(Boolean) |
Felszabadítja a felügyelt erőforrások által TraceListener használt nem felügyelt erőforrásokat, és opcionálisan felszabadítja a felügyelt erőforrásokat. (Öröklődés forrása TraceListener) |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| Fail(String, String) |
Részletes üzeneteket és veremkövetést bocsát ki vagy jelenít meg egy olyan állításhoz, amely mindig meghiúsul. |
| Fail(String) |
Üzenetet és veremkövetőt bocsát ki vagy jelenít meg egy olyan állításhoz, amely mindig sikertelen. |
| Flush() |
Ha egy származtatott osztályban felül van bírálva, kiüríti a kimeneti puffert. (Öröklődés forrása TraceListener) |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetLifetimeService() |
Lekéri a példány élettartamszabályzatát vezérlő aktuális élettartam-szolgáltatásobjektumot. (Öröklődés forrása MarshalByRefObject) |
| GetSupportedAttributes() |
Lekéri a nyomkövetési figyelő által támogatott egyéni attribútumokat. (Öröklődés forrása TraceListener) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| InitializeLifetimeService() |
Beolvas egy élettartam-szolgáltatásobjektumot a példány élettartam-szabályzatának szabályozásához. (Öröklődés forrása MarshalByRefObject) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| MemberwiseClone(Boolean) |
Az aktuális MarshalByRefObject objektum sekély másolatát hozza létre. (Öröklődés forrása MarshalByRefObject) |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |
| TraceData(TraceEventCache, String, TraceEventType, Int32, Object) |
Nyomkövetési információkat, adatobjektumokat és eseményadatokat ír a figyelő adott kimenetére. (Öröklődés forrása TraceListener) |
| TraceData(TraceEventCache, String, TraceEventType, Int32, Object[]) |
Nyomkövetési információkat, adatobjektumokat és eseményinformációkat tartalmazó tömböt ír a figyelő adott kimenetére. (Öröklődés forrása TraceListener) |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[]) |
Nyomkövetési információkat, egy formázott objektumtömböt és eseményinformációt ír a figyelő adott kimenetére. (Öröklődés forrása TraceListener) |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32, String) |
Nyomkövetési információkat, üzenetet és eseményadatokat ír a figyelő adott kimenetére. (Öröklődés forrása TraceListener) |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32) |
Nyomkövetési és eseményinformációkat ír a figyelő adott kimenetére. (Öröklődés forrása TraceListener) |
| TraceTransfer(TraceEventCache, String, Int32, String, Guid) |
Nyomkövetési információkat, üzenetet, kapcsolódó tevékenységidentitást és eseményadatokat ír a figyelő adott kimenetére. (Öröklődés forrása TraceListener) |
| Write(Object, String) |
Kategórianevet és az objektum ToString() metódusának értékét írja az osztály megvalósításakor TraceListener létrehozott figyelőnek. (Öröklődés forrása TraceListener) |
| Write(Object) |
Az objektum ToString() metódusának értékét az osztály megvalósításakor TraceListener létrehozott figyelőnek írja. (Öröklődés forrása TraceListener) |
| Write(String, String) |
Kategórianevet és üzenetet ír az osztály megvalósításakor TraceListener létrehozott figyelőnek. (Öröklődés forrása TraceListener) |
| Write(String) |
A kimenetet a |
| WriteIndent() |
Az osztály megvalósításakor létrehozott figyelőbe írja a behúzást, és alaphelyzetbe állítja a NeedIndent tulajdonságot |
| WriteLine(Object, String) |
Egy kategórianevet és az objektum ToString() metódusának értékét írja az osztály megvalósításakor TraceListener létrehozott figyelőnek, amelyet egy sor terminátor követ. (Öröklődés forrása TraceListener) |
| WriteLine(Object) |
Az objektum ToString() metódusának értékét az osztály megvalósításakor TraceListener létrehozott figyelőnek írja, amelyet egy sor terminátor követ. (Öröklődés forrása TraceListener) |
| WriteLine(String, String) |
Egy kategórianevet és egy üzenetet ír a figyelőnek, amelyet az TraceListener osztály megvalósításakor hoz létre, majd egy sor terminátort. (Öröklődés forrása TraceListener) |
| WriteLine(String) |
A kimenetet a |
A következőre érvényes:
Szálbiztonság
Ez az osztály szálbiztos.