我正在编写一个错误日志记录例程,该例程将由多个 WCF 服务提供程序(托管在后台 Windows 服务中)使用,以便他们可以记录他们捕获的任何异常。问题是,如果我是在例行程序中发现异常的人,我不知道该怎么办。
更具体地说,这是我当前的例程(在 VB.Net 中):
Public Shared Sub LogError(Text As String, Filename As String, PathLog As String)
Try
PathLog = Path.GetFullPath(PathLog)
If Not Directory.Exists(PathLog) Then
Directory.CreateDirectory(PathLog)
End If
Dim PathFile As String = Path.GetFullPath(PathLog & "\" & Filename)
File.AppendAllText(PathFile, "[" & GetDateTimeWithMiliseconds() & "] " & vbNewLine & Text & vbNewLine)
Catch ex As Exception
'ToDo: WHAT TO DO?!
End Try
End Sub
我意识到我可能应该单独捕获可能的异常,而不是进行一般Try
... Catch
。但我的意思是,一旦我抓住它们,我该怎么办?
- 我不能抛出 MessageBox,因为它是 Windows 服务托管的 WCF 服务器(即使我可以,我也不应该)
- 我很可能无法记录错误,因为错误记录例程已经失败
我陷入困境
PS:外部日志记录解决方案是不可能的