FileLogTraceListener 类

定义

提供一个简单的侦听器,用于将日志记录输出指引至文件。

public ref class FileLogTraceListener : System::Diagnostics::TraceListener
[System.Runtime.InteropServices.ComVisible(false)]
public class FileLogTraceListener : System.Diagnostics.TraceListener
[<System.Runtime.InteropServices.ComVisible(false)>]
type FileLogTraceListener = class
    inherit TraceListener
Public Class FileLogTraceListener
Inherits TraceListener
继承
FileLogTraceListener
属性

注解

FileLogTraceListener 提供自动维护功能,以根据需要每日或按应用程序存档日志文件。 这种自动存档功能有助于减少开发人员和管理员的维护责任。

可以将 的FileLogTraceListener实例添加到 或 Trace.Listeners 集合,Debug.Listeners以将日志记录的输出重定向到文本文件。 此类的实例也可以添加到 My.Application.LogMy.Log 或 (Visual Basic 应用程序中的 Web 应用程序) 。 有关详细信息,请参阅 演练:更改 My.Application.Log 写入信息的位置

此类main功能包括:

  1. 存档功能。 此类生成的日志文件根据基名称和日期以及用于将日志文件与连续版本的日志区分开来的数字命名。 将根据需要创建新的日志文件。

    文件名的显式形式为 baseName[-dateStamp][-version].log,其中:

    • 部件 baseName 是由 属性指定 BaseFileName 的基本日志名称。

    • 部件dateStamp的格式为“YYYY-MM-DD”,在 为 DailyWeeklyLogFileCreationSchedule显示。

    • 如果需要多个具有相同 和 dateStampbaseName日志文件,则会在version文件名中添加一个正Integer部分。

  2. 多个类实例。 如果 类的 FileLogTraceListener 实例写入正在使用的文件:

    • 如果同一进程中的另一个类实例正在使用该文件, FileLogTraceListener 则类将共享该文件。

    • 如果另一个进程正在使用该文件,则 类将使用下一个可用名称创建新的日志文件。

  3. 线程安全。 类 FileLogTraceListener 是线程安全的。 这样,无需使用锁,即可从多个线程安全地将消息写入日志。

日志文件位置

  • 属性 Location 采用 LogFileLocation 枚举来指定要将日志文件写入到的典型目录之一。

  • 若要将日志写入其他位置,请将 CustomLocation 属性设置为该位置。

日志文件名

  • 日志文件的基名称由 BaseFileName 属性指定。

  • 可以从 属性中读取 FullLogFileName 当前日志文件名。 它派生自其他几个属性和文件系统中日志的当前状态。

日志维护

日志文件输出设置

  • 属性 AutoFlush 指定是否应在每次写入日志文件后自动刷新基础流。

  • 属性 Append 指定是在允许的情况下将消息追加到当前日志文件,还是将其写入新的日志文件。

  • 属性 Delimiter 指定用于分隔日志消息中的字段的字符串。

  • 属性 Encoding 指定创建新日志文件时要使用的编码。

日志文件输出

  • TraceDataTraceEvent 方法将消息写入日志文件。 这些方法检查 LogFileCreationSchedule 属性,以及具有相同基名称的任何现有日志,以确定是否应创建新日志。

  • 方法 Flush 将当前位于输出缓冲区中的任何消息刷新到日志文件。

  • 方法 Close 关闭日志文件,以便其他进程可以使用它。

启用输出

必须启用跟踪或调试才能使用跟踪侦听器。 以下语法特定于编译器。 如果使用 C# 或 Visual Basic 以外的编译器,请参阅编译器的文档。

  • 若要在 C# 中启用调试,请在 /d:DEBUG 编译代码时将 标志添加到编译器命令行,或者可以添加到 #define DEBUG 文件的顶部。 在 Visual Basic 中,将 /d:DEBUG=True 标志添加到编译器命令行。

  • 若要在 C# 中启用跟踪,请在 /d:TRACE 编译代码时将 标志添加到编译器命令行,或添加到 #define TRACE 文件的顶部。 在 Visual Basic 中,将 /d:TRACE=True 标志添加到编译器命令行。

在.NET Framework应用中,可以通过编辑应用程序的配置文件来设置侦听器的级别。 在此文件中,可以添加侦听器、设置其类型和设置其参数、删除侦听器或清除以前由应用程序设置的所有侦听器。 配置文件的格式应如以下示例所示。

<configuration>  
    <system.diagnostics>  
        <sharedListeners>  
            <add name="FileLog"  
                type="Microsoft.VisualBasic.Logging.FileLogTraceListener,   
                      Microsoft.VisualBasic, Version=8.0.0.0,   
                      Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a,   
                      processorArchitecture=MSIL"   
                initializeData="FileLogWriter"/>  
        </sharedListeners>  
    </system.diagnostics>  
</configuration>  

若要运行此示例,必须提供完全限定的程序集名称。 有关如何获取完全限定程序集名称的信息,请参阅 程序集名称

构造函数

FileLogTraceListener()

使用默认名称初始化 FileLogTraceListener 类的新实例。

FileLogTraceListener(String)

用提供的名称初始化 FileLogTraceListener 类的新实例。

属性

Append

确定是将输出追加到当前文件还是将输出写入新文件或现有文件。

Attributes

获取应用程序配置文件中定义的自定义跟踪侦听器特性。

(继承自 TraceListener)
AutoFlush

指示写入日志文件流时是否刷新缓冲区。

BaseFileName

获取或设置日志文件的基名称,该名称用于创建日志文件的完整名称。

CustomLocation

Location 属性设置为 Custom 时获取或设置日志文件目录。

Delimiter

获取或设置用于在日志消息中分隔字段的分隔符。

DiskSpaceExhaustedBehavior

确定在写入日志文件时,如果可用磁盘空间小于 ReserveDiskSpace 属性所指定的磁盘空间时应采取的操作。

Encoding

获取或设置创建新日志文件时使用的编码。

Filter

获取或设置跟踪侦听器的跟踪筛选器。

(继承自 TraceListener)
FullLogFileName

获取当前日志文件的完整名称。

IncludeHostName

指示输出中是否应包括日志记录计算机的主机名。

IndentLevel

获取或设置缩进级别。

(继承自 TraceListener)
IndentSize

获取或设置缩进的空格数。

(继承自 TraceListener)
IsThreadSafe

获取一个值,该值指示跟踪侦听器是否是线程安全的。

(继承自 TraceListener)
Location

获取或设置日志文件的位置。

LogFileCreationSchedule

确定要包括在日志文件名称中的日期。

MaxFileSize

获取或设置所允许的日志文件的最大大小,以字节为单位。

Name

获取或设置此 TraceListener 的名称。

(继承自 TraceListener)
NeedIndent

获取或设置一个值,该值指示是否缩进输出。

(继承自 TraceListener)
ReserveDiskSpace

获取或设置在将消息写入日志文件之前需要满足的可用磁盘空间量(以字节为单位)。

TraceOutputOptions

获取或设置跟踪输出选项。

(继承自 TraceListener)

方法

Close()

关闭当前日志文件的基础流,并释放与当前流关联的所有资源。

CreateObjRef(Type)

创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。

(继承自 MarshalByRefObject)
Dispose()

释放由 TraceListener 使用的所有资源。

(继承自 TraceListener)
Dispose(Boolean)

关闭基础流,并可以选择释放托管资源。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
Fail(String)

实现 TraceListener 类时,向所创建的侦听器发出错误信息。

(继承自 TraceListener)
Fail(String, String)

实现 TraceListener 类时,向所创建的侦听器发出错误信息和详细错误信息。

(继承自 TraceListener)
Flush()

刷新写入当前日志文件的基础流。

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetLifetimeService()
已过时.

检索控制此实例的生存期策略的当前生存期服务对象。

(继承自 MarshalByRefObject)
GetSupportedAttributes()

获取跟踪侦听器支持的自定义 XML 配置特性。

GetType()

获取当前实例的 Type

(继承自 Object)
InitializeLifetimeService()
已过时.

获取生存期服务对象来控制此实例的生存期策略。

(继承自 MarshalByRefObject)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
MemberwiseClone(Boolean)

创建当前 MarshalByRefObject 对象的浅表副本。

(继承自 MarshalByRefObject)
ToString()

返回表示当前对象的字符串。

(继承自 Object)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object)

向输出文件或流中写入跟踪信息、数据对象和事件信息。

TraceData(TraceEventCache, String, TraceEventType, Int32, Object[])

将跟踪信息、数据对象数组和事件信息写入输出文件或流中。

TraceEvent(TraceEventCache, String, TraceEventType, Int32)

向特定于侦听器的输出写入跟踪和事件信息。

(继承自 TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String)

将跟踪信息、消息和事件信息写入输出文件或流中。

TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[])

将跟踪信息、格式化对象数组和事件信息写入输出文件或流中。

TraceTransfer(TraceEventCache, String, Int32, String, Guid)

向侦听器特定的输出中写入跟踪信息、消息、相关活动标识和事件信息。

(继承自 TraceListener)
Write(Object)

实现 ToString() 类时,向所创建的侦听器写入对象的 TraceListener 方法值。

(继承自 TraceListener)
Write(Object, String)

实现 ToString() 类时,向所创建的侦听器写入类别名称和对象的 TraceListener 方法值。

(继承自 TraceListener)
Write(String)

将消息逐字写入磁盘,不带任何附加上下文信息。

Write(String, String)

实现 TraceListener 类时,向所创建的侦听器写入类别名称和消息。

(继承自 TraceListener)
WriteIndent()

实现此类时,向所创建的侦听器写入缩进,并将 NeedIndent 属性重置为 false

(继承自 TraceListener)
WriteLine(Object)

实现 TraceListener 类时,向所创建的侦听器写入对象的 ToString() 方法值,后跟行结束符。

(继承自 TraceListener)
WriteLine(Object, String)

实现 TraceListener 类时,向所创建的侦听器写入类别名称和对象的 ToString() 方法值,后跟行结束符。

(继承自 TraceListener)
WriteLine(String)

将消息逐字写入磁盘,后跟当前行分隔符,不带任何附加上下文信息。

WriteLine(String, String)

实现 TraceListener 类时,向所创建的侦听器写入类别名称和消息,后跟行结束符。

(继承自 TraceListener)

适用于

另请参阅