1

我正在为非开发人员创建一个设计模式,并且我正在将一个捕获所有错误处理程序与 UnhandledException 事件结合起来。我想将错误写入日志文件,但日志文件名中有一个时间戳,因此每次运行都会更改。有没有办法我的处理程序可以接收或访问日志文件名字符串?

谢谢你的帮助

4

1 回答 1

2

通常 UnhandledException 事件处理程序位于包含您的启动代码的类中。因此,没有什么可以阻止您在此类中定义一个包含日志文件名称的共享公共变量。您可以在启动时从配置文件中读取它的值。然后在事件内部可以使用该变量打开您的日志文件并写入您的信息

编辑:在你的场景中你可以试试这个伪代码

Partial Friend Class MyApplication

    ' the name for the log file
    Public logName As String

    Private Sub MyApplication_UnhandledException(sender As Object, e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) Handles Me.UnhandledException
        Dim ex As Exception = e.Exception
        If Not ex Is Nothing Then
            MessageBox.Show(ex.Message)
            Using sw = new StreamWriter(My.MyApplication.logName)
               .....
            End Using
        End If
    End Sub
End Class

并在您的初始表单中添加此调用以定义 logName

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    My.Application.logName = "C:\temp\text.txt"
    ' as test
    Throw New Exception("This is an unhandled exception")
End Sub
    End Sub
于 2012-09-24T21:11:58.420 回答