【发布时间】:2012-09-24 21:01:57
【问题描述】:
我正在为非开发人员创建一个设计模式,并且我正在将一个捕获所有错误处理程序与 UnhandledException 事件结合起来。我想将错误写入日志文件,但日志文件名中有时间戳,因此每次运行都会更改。有没有办法让我的处理程序接收或访问日志文件名字符串?
感谢您的帮助
【问题讨论】:
标签: vb.net design-patterns .net-3.5
我正在为非开发人员创建一个设计模式,并且我正在将一个捕获所有错误处理程序与 UnhandledException 事件结合起来。我想将错误写入日志文件,但日志文件名中有时间戳,因此每次运行都会更改。有没有办法让我的处理程序接收或访问日志文件名字符串?
感谢您的帮助
【问题讨论】:
标签: vb.net design-patterns .net-3.5
通常,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
【讨论】: