我们使用EventLog来记录异常。有一个后台线程,它在事件日志填满后进行检查,并以编程方式将条目传输到XML文件中,然后清除事件日志。
这工作得很好,但似乎有太多的工作要做,我认为简单地复制用于记录当前应用程序的.evt文件,然后清除事件日志会更好。
有没有办法找到文件的位置/路径,这将在每个windows操作系统上工作?
要使用的suggested
Registry.LocalMachine.OpenSubKey("System\\CurrentControlSet\\Services\\EventLog\\" + e.Log);
但是我的应用程序日志名称没有File属性。
发布于 2012-06-21 16:03:45
您现在是如何将它们归档的?也许可以改进该方法以获得性能。
下面是一个例子。
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
更多信息可以在这里找到:
https://stackoverflow.com/questions/11133530
复制相似问题