.Net / Windows事件日志:如何设置“根据需要覆盖事件”时保留特定日志

时间:2013-02-05 18:21:15

标签: vb.net event-log

我们有一个VB.Net 2.0应用程序,它记录了很多事件。

按照惯例,要在硬盘空间耗尽时停止应用程序失败,我们会设置“根据需要覆盖事件”选项。

这意味着我们每次只能获得大约6小时的日志。

大多数日志仅供参考,可以丢弃,但我们希望保留这些日志以进行故障排除。

由于业务政策,我们无法调低日志记录级别。

示例代码:

Private Shared Sub WriteToEventLog(ByVal message As String,
                                   ByVal type As EventLogEntryType,
                                   ByVal componentName As String)

    Dim eventLog As New EventLog("OurAppEvents")
    eventLog.Source = componentName 
    eventLog.WriteEntry(message, type)
End Sub

有没有办法“保留”日志条目,以便在覆盖发生时不会被删除?

1 个答案:

答案 0 :(得分:0)

目前的解决方法是登录辅助日志:

Private Shared Sub WriteToEventLog(ByVal message As String,
                                   ByVal type As EventLogEntryType,
                                   ByVal componentName As String)

    Dim eventLog As New EventLog("OurAppEvents")
    eventLog.Source = componentName 
    eventLog.WriteEntry(message, type)

    If type = EventLogEntryType.Error Then

        Dim errorLog As New EventLog("OurAppErrors")
        errorLog.Source = componentName + "Error"
        errorLog.WriteEntry(message, type)

    End If

End Sub