ConsoleTraceListener 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將追蹤或偵錯輸出直接導向到標準輸出或標準錯誤資料流。
public ref class ConsoleTraceListener : System::Diagnostics::TextWriterTraceListener
public class ConsoleTraceListener : System.Diagnostics.TextWriterTraceListener
type ConsoleTraceListener = class
inherit TextWriterTraceListener
Public Class ConsoleTraceListener
Inherits TextWriterTraceListener
- 繼承
範例
下列程式代碼範例會實作控制台應用程式,其中包含具有兩個公用方法的類別。
方法 Main
會檢查命令行自變數,並判斷追蹤輸出是否應該導向至標準錯誤數據流或標準輸出數據流。 Main
會建立並初始化 ConsoleTraceListener 指定 Console 之輸出數據流的物件,並將這個物件加入至追蹤接聽程式集合。 然後它會呼叫 WriteEnvironmentInfoToTrace
方法,以將執行環境的詳細數據和追蹤接聽程式組態寫入追蹤輸出。
當範例應用程式執行時,環境和追蹤組態詳細數據會透過 ConsoleTraceListener 物件寫入指定的主控台輸出資料流。
// Define the TRACE directive, which enables trace output to the
// Trace.Listeners collection. Typically, this directive is defined
// as a compilation argument.
#define TRACE
using System;
using System.Diagnostics;
public class ConsoleTraceSample
{
// Define a simple method to write details about the current executing
// environment to the trace listener collection.
public static void WriteEnvironmentInfoToTrace()
{
string methodName = "WriteEnvironmentInfoToTrace";
Trace.Indent();
Trace.WriteLine(DateTime.Now.ToString() + " - Start of " + methodName);
Trace.Indent();
// Write details on the executing environment to the trace output.
Trace.WriteLine("Operating system: " + System.Environment.OSVersion.ToString());
Trace.WriteLine("Computer name: " + System.Environment.MachineName);
Trace.WriteLine("User name: " + System.Environment.UserName);
Trace.WriteLine("CLR runtime version: " + System.Environment.Version.ToString());
Trace.WriteLine("Command line: " + System.Environment.CommandLine);
// Enumerate the trace listener collection and
// display details about each configured trace listener.
Trace.WriteLine("Number of configured trace listeners = " + Trace.Listeners.Count.ToString());
foreach (TraceListener tl in Trace.Listeners)
{
Trace.WriteLine("Trace listener name = " + tl.Name);
Trace.WriteLine(" type = " + tl.GetType().ToString());
}
Trace.Unindent();
Trace.WriteLine(DateTime.Now.ToString() + " - End of " + methodName);
Trace.Unindent();
}
// Define the main entry point of this class.
// The main method adds a console trace listener to the collection
// of configured trace listeners, then writes details on the current
// executing environment.
public static void Main(string[] CmdArgs)
{
// Write a trace message to all configured trace listeners.
Trace.WriteLine(DateTime.Now.ToString()+" - Start of Main");
// Define a trace listener to direct trace output from this method
// to the console.
ConsoleTraceListener consoleTracer;
// Check the command line arguments to determine which
// console stream should be used for trace output.
if ((CmdArgs.Length>0)&&(CmdArgs[0].ToString().ToLower().Equals("/stderr")))
// Initialize the console trace listener to write
// trace output to the standard error stream.
{
consoleTracer = new ConsoleTraceListener(true);
}
else
{
// Initialize the console trace listener to write
// trace output to the standard output stream.
consoleTracer = new ConsoleTraceListener();
}
// Set the name of the trace listener, which helps identify this
// particular instance within the trace listener collection.
consoleTracer.Name = "mainConsoleTracer";
// Write the initial trace message to the console trace listener.
consoleTracer.WriteLine(DateTime.Now.ToString()+" ["+consoleTracer.Name+"] - Starting output to trace listener.");
// Add the new console trace listener to
// the collection of trace listeners.
Trace.Listeners.Add(consoleTracer);
// Call a local method, which writes information about the current
// execution environment to the configured trace listeners.
WriteEnvironmentInfoToTrace();
// Write the final trace message to the console trace listener.
consoleTracer.WriteLine(DateTime.Now.ToString()+" ["+consoleTracer.Name+"] - Ending output to trace listener.");
// Flush any pending trace messages, remove the
// console trace listener from the collection,
// and close the console trace listener.
Trace.Flush();
Trace.Listeners.Remove(consoleTracer);
consoleTracer.Close();
// Write a final trace message to all trace listeners.
Trace.WriteLine(DateTime.Now.ToString()+" - End of Main");
// Close all other configured trace listeners.
Trace.Close();
}
}
' Define the TRACE constant, which enables trace output to the
' Trace.Listeners collection. Typically, this constant is defined
' as a compilation argument.
#Const TRACE = True
Imports System.Diagnostics
Public Class ConsoleTraceSample
' Define a simple method to write details about the current executing
' environment to the trace listener collection.
Public Shared Sub WriteEnvironmentInfoToTrace()
Dim methodName As String = "WriteEnvironmentInfoToTrace"
Trace.Indent()
Trace.WriteLine(DateTime.Now.ToString() & " - Start of " & methodName)
Trace.Indent()
' Write details on the executing environment to the trace output.
Trace.WriteLine("Operating system: " & _
System.Environment.OSVersion.ToString())
Trace.WriteLine("Computer name: " & System.Environment.MachineName)
Trace.WriteLine("User name: " & System.Environment.UserName)
Trace.WriteLine("CLR version: " & System.Environment.Version.ToString)
Trace.WriteLine("Command line: " & System.Environment.CommandLine)
' Enumerate the trace listener collection and
' display details about each configured trace listener.
Trace.WriteLine("Number of configured trace listeners = " & _
Trace.Listeners.Count.ToString())
Dim tl As TraceListener
For Each tl In Trace.Listeners
Trace.WriteLine("Trace listener name = " & tl.Name)
Trace.WriteLine(" type = " & tl.GetType().ToString())
Next tl
Trace.Unindent()
Trace.WriteLine(DateTime.Now.ToString() & " - End of " & methodName)
Trace.Unindent()
End Sub
' Define the main entry point of this class.
' The main method adds a console trace listener to the collection
' of configured trace listeners, then writes details on the current
' executing environment.
Public Shared Sub Main(ByVal CmdArgs() As String)
' Write a trace message to all configured trace listeners.
Trace.WriteLine(DateTime.Now.ToString() & " - Start of Main")
' Define a trace listener to direct trace output from this method
' to the console.
Dim consoleTracer As ConsoleTraceListener
' Check the command line arguments to determine which
' console stream should be used for trace output.
If (CmdArgs.Length > 0) AndAlso _
(CmdArgs(0).ToLower.Equals("/stderr")) Then
' Initialize the console trace listener to write
' trace output to the standard error stream.
consoleTracer = New ConsoleTraceListener(True)
Else
' Initialize the console trace listener to write
' trace output to the standard output stream.
consoleTracer = New ConsoleTraceListener
End If
' Set the name of the trace listener, which helps identify this
' particular instance within the trace listener collection.
consoleTracer.Name = "mainConsoleTracer"
' Write the initial trace message to the console trace listener.
consoleTracer.WriteLine(DateTime.Now.ToString() & " [" & _
consoleTracer.Name & "] - Starting output to trace listener.")
' Add the new console trace listener to
' the collection of trace listeners.
Trace.Listeners.Add(consoleTracer)
' Call a local method, which writes information about the current
' execution environment to the configured trace listeners.
WriteEnvironmentInfoToTrace()
' Write the final trace message to the console trace listener.
consoleTracer.WriteLine(DateTime.Now.ToString() & " [" & _
consoleTracer.Name & "] - Ending output to trace listener.")
' Flush any pending trace messages, remove the
' console trace listener from the collection,
' and close the console trace listener.
Trace.Flush()
Trace.Listeners.Remove(consoleTracer)
consoleTracer.Close()
' Write a final trace message to all trace listeners.
Trace.WriteLine(DateTime.Now.ToString() + " - End of Main")
' Close all other configured trace listeners.
Trace.Close()
End Sub
End Class
備註
ConsoleTraceListener使用 類別將追蹤和偵錯訊息寫入主控台。 您可以初始化 物件, ConsoleTraceListener 以將追蹤訊息 Console.Out 寫入數據流或 Console.Error 數據流。
重要
此型別代表 IDisposable 介面。 當您完成使用型別時,您應該直接或間接處置它。 若要直接處置類型,請在 區塊中try
/catch
呼叫其 Dispose 方法。 若要間接處置它,請使用語言建構函式,例如 using
(在 C# 中) 或 Using
(在 Visual Basic 中)。 如需詳細資訊,請參閱 IDisposable 介面文章中的<使用實作 IDisposable 的物件>一節。
啟用追蹤和偵錯輸出時,ConsoleTraceListener訊息會寫入指定的System.Console數據流,類似於使用 或 Console.WriteLine 方法寫入Console.Write訊息的方式。 在主控台應用程式中,輸出和錯誤串流會將 System.Console 訊息寫入現有的控制台視窗,或者您可以將資料流重新導向至 System.IO.TextWriter 實例。
注意
如果主控台不存在,如同在 Windows 型應用程式中,不會顯示寫入主控台的訊息。
ConsoleTraceListener如果您想要透過、 TraceSource或 Debug 寫入主控台的訊息Trace,請將 物件新增至適當的Listeners集合。 此外,您也可以使用 Trace.Write 或 Trace.WriteLine 方法來直接將訊息寫入主控台。
注意
Debug和 Trace 類別會共用相同的TraceListenerCollection集合,可透過其各自的Listeners
屬性來存取。 如果您使用其中一個類別將 物件新增至集合,另一個 ConsoleTraceListener 類別會自動使用相同的接聽程式。
大部分編譯程式都會透過條件式編譯旗標啟用追蹤和偵錯輸出。 如果您未啟用追蹤或偵錯,則會有效地忽略透過 System.Diagnostics.Debug 和 System.Diagnostics.Trace 類別撰寫的訊息。 啟用追蹤和偵錯輸出的語法是編譯程式特定的;如果您使用 C# 或 Visual Basic 以外的編譯程式,請參閱編譯程式的檔。
若要在 C# 中啟用偵錯,請在編譯程式程式代碼時,將 /d:DEBUG旗標新增至編譯程式命令行,或將 #define DEBUG 新增至檔案頂端。 在 Visual Basic 中,將 /d:DEBUG=True 旗標新增至編譯程式命令行。
若要在 C# 中啟用追蹤,請在編譯程式代碼時,將 /d:TRACE 旗標新增至編譯程式命令行,或將 #define TRACE 新增至檔案頂端。 在 Visual Basic 中,將 /d:TRACE=True 旗標新增至編譯程式命令行。
您可以在程式代碼中將 物件新增 ConsoleTraceListener 至 Listeners 集合。 或者,對於 .NET Framework 應用程式,您可以透過應用程式組態檔將 物件新增ConsoleTraceListener至Listeners集合。 在程式代碼中新增 ConsoleTraceListener 物件,以撰寫特定程式代碼區段或執行路徑的訊息。 在應用程式組態檔中新增 ConsoleTraceListener 物件,以在應用程式執行時將所有追蹤和偵錯訊息導向控制台。
若要針對特定程式代碼區段將追蹤和偵錯訊息寫入主控台,請初始化 ConsoleTraceListener 物件,並將其新增至 Listeners 集合。 使用或 Debug 類別檢測包含訊息Trace的程式代碼區段。 在程式代碼區段的結尾,從集合中移除 ConsoleTraceListener 物件,並在上ConsoleTraceListener呼叫 Close 方法。Listeners
對於 .NET Framework 應用程式,若要在應用程式執行時將所有追蹤和偵錯訊息導向控制台,請將 物件新增ConsoleTraceListener至應用程式組態檔。 下列範例會將名為 configConsoleListener
的物件新增ConsoleTraceListener至Listeners集合。
<configuration>
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<listeners>
<add name="configConsoleListener" type="System.Diagnostics.ConsoleTraceListener" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
如需在應用程式組態檔中新增追蹤接聽程式的詳細資訊,請參閱 <接聽程式>。
建構函式
ConsoleTraceListener() |
初始化 ConsoleTraceListener 類別的新執行個體,附追蹤輸出寫入至標準輸出資料流。 |
ConsoleTraceListener(Boolean) |
初始化 ConsoleTraceListener 類別的新執行個體,附寫入追蹤輸出至標準輸出資料流或標準錯誤資料流的選項。 |
屬性
Attributes |
取得在應用程式組態檔中定義的自訂追蹤接聽程式屬性。 (繼承來源 TraceListener) |
Filter |
取得或設定追蹤接聽程式的追蹤篩選。 (繼承來源 TraceListener) |
IndentLevel |
取得或設定縮排層級。 (繼承來源 TraceListener) |
IndentSize |
取得或設定縮排的空格數目。 (繼承來源 TraceListener) |
IsThreadSafe |
取得值,指出追蹤接聽程式是否為安全執行緒。 (繼承來源 TraceListener) |
Name |
取得或設定這個 TraceListener 的名稱。 (繼承來源 TraceListener) |
NeedIndent |
取得或設定值,指出是否要縮排輸出。 (繼承來源 TraceListener) |
TraceOutputOptions |
取得或設定追蹤輸出選項。 (繼承來源 TraceListener) |
Writer |
取行或設定接收追蹤或偵錯之輸出的文字寫入器。 (繼承來源 TextWriterTraceListener) |