0

我们使用 EventLog 来记录异常。有一个后台线程检查事件日志是否已满,并以编程方式将条目传输到 XML 文件中,然后清除事件日志。

这工作正常,但似乎有太多工作要做,我认为最好简单地复制用于记录当前应用程序的 .evt 文件,然后清除事件日志。

有没有办法找到适用于每个 Windows 操作系统的文件的位置/路径?

建议使用_

Registry.LocalMachine.OpenSubKey("System\\CurrentControlSet\\Services\\EventLog\\" + e.Log);

但后来我的应用程序日志名称没有 File 属性。

4

1 回答 1

2

你现在如何归档它们?也许可以改进该方法以获得性能。

这是一个例子。

EventLogSession els = new EventLogSession();
els.ExportLogAndMessages("Security",             // Log Name to archive
                         PathType.LogName,       // Type of Log
                         "*",                    // Query selecting all events
                         "C:\\archivedLog.evtx", // Exported Log Path 
                         false,                  // Stop archive if query is invalid
                         CultureInfo.CurrentCulture);

或者您可以使用 ClearLog() 方法。

EventLogSession els = new EventLogSession();

// Clears all the events and archives them to the .evtx file
els.ClearLog("System",          //  Channel to Clear
             "c:\\myLog.evtx"); //  Backup File Path

更多信息可以在这里找到:

导出、存档和清除事件日志

于 2012-06-21T08:03:45.267 回答