我正在编写一个错误日志记录例程,该例程将由多个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
。但我的观点是,一旦我抓住它们该怎么办?
我在堵塞
P.S:外部日志解决方案是不可能的
答案 0 :(得分:0)
这个世界上的每个节目都有一个点,你必须说,“我对此无能为力”。这就是你怎么说的:
Try
.....
Catch
''Do Nothing
End Try
因此,您可能希望写入有关特殊日志记录失败的事件日志。但是如果事件日志失败,你就什么也做不了,上面的代码就会解决这个问题。
在您的具体示例中,您应该在方法中使用锁,因为多个线程可能访问相同的代码并且文件可能被锁定,这将导致错误。
SyncLock lockObject
'' your code
End SyncLock