用以在记录文件中写入自定义的调试信息(主要是时间)的组件

发表于:2007-06-30来源:作者:点击数: 标签:
@#==================================================================== @#TraceSpy - 用以在记录文件中写入自定义的调试信息( 开发 者:林健) @#==================================================================== @# @#属性: @# TraceFileName -
@#====================================================================
@#TraceSpy - 用以在记录文件中写入自定义的调试信息(开发者:林健)
@#====================================================================
@#
@#属性:
@#       TraceFileName        - 记录文件名
@#
@#方法:
@#   ★文本写入方面
@#       WriteText            - 写入自定义文本
@#       ClearAllText         - 清除所有文本
@#   ★时间记录方面
@#       SetTimePoint         - 设置时间起点
@#       GetTimeSpanFromInit  - 询问时间跨度(距离时间起点)
@#       GetTimeSpanFromPrev  - 询问时间跨度(距离上次询问时间)
@#
@#====================================================================

Public Class TraceSpy

    @#记录文件名
    Public Shared TraceFileName As String = "Trace.txt"

    @#时间起点(初始为当前时刻)
    Private Shared InitTimePoint As Long = Now.Ticks

    @#上次询问时间点(初始为当前时刻)
    Private Shared PrevTimePoint As Long = Now.Ticks

    @#写入自定义文本
    Public Shared Sub WriteText(ByVal str As String, Optional ByVal showTime As Boolean = False)
        TraceSpyFileWriter.WriteText(str, showTime)
    End Sub

    @#清除所有文本
    Public Shared Sub ClearAllText()
        TraceSpyFileWriter.ClearAllText()
    End Sub

    @#设置时间起点
    Public Shared Sub SetTimePoint(Optional ByVal note As String = "")
        InitTimePoint = Now.Ticks
        PrevTimePoint = Now.Ticks
        TraceSpyFileWriter.WriteText("设置时间起点[" & note & "]。")
    End Sub

    @#询问时间跨度(距离时间起点)
    Public Shared Function GetTimeSpanFromInit(Optional ByVal note As String = "") As Decimal
        PrevTimePoint = Now.Ticks
        Dim span As Decimal
        span = CDec(PrevTimePoint - InitTimePoint) / 10000D
        TraceSpyFileWriter.WriteText("询问时间跨度[" & note & "],距离时间起点为" & span.ToString() & "毫秒。")
        Return span
    End Function

    @#询问时间跨度(距离上次询问时间)
    Public Shared Function GetTimeSpanFromPrev(Optional ByVal note As String = "") As Decimal
        Dim RectTimePoint As Long = Now.Ticks
        Dim span As Decimal
        span = CDec(RectTimePoint - PrevTimePoint) / 10000D
        PrevTimePoint = RectTimePoint
        TraceSpyFileWriter.WriteText("询问时间跨度[" & note & "],距离上次询问时间为" & span.ToString() & "毫秒。")
        Return span
    End Function

End Class

Friend Class TraceSpyFileWriter

    Private Shared FileWriter As System.IO.StreamWriter

    @#向文件中写入一个字串
    Friend Shared Sub WriteText(ByVal str As String, Optional ByVal showTime As Boolean = False)
        If TraceSpy.TraceFileName = String.Empty Then
            Exit Sub
        End If
        FileWriter = New System.IO.StreamWriter(TraceSpy.TraceFileName, True, Text.Encoding.Default)
        Dim words As String
        words = str
        If showTime Then
            words &= " @ " & Now.ToLongDateString & " " & Now.ToLongTimeString
        End If
        FileWriter.WriteLine(words)
        FileWriter.Close()
    End Sub

    @#清除记录文件
    Friend Shared Sub ClearAllText()
        If TraceSpy.TraceFileName = String.Empty Then
            Exit Sub
        End If
        FileWriter = New System.IO.StreamWriter(TraceSpy.TraceFileName, False, Text.Encoding.Default)
        FileWriter.Write("")
        FileWriter.Close()
    End Sub

End Class

原文转自:http://www.ltesting.net