C# 获取windows事件日志文件的位置
我们正在使用EventLog记录异常。有一个后台线程,它在事件日志变满后进行检查,并通过编程将条目传输到XML文件中,然后清除事件日志 这很好,但似乎有太多的工作要做,我认为最好是简单地复制用于记录当前应用程序的.evt文件,然后清除事件日志 有没有办法找到在每个windows操作系统上都可以使用的文件的位置/路径 它的用途C# 获取windows事件日志文件的位置,c#,.net,logging,event-log,C#,.net,Logging,Event Log,我们正在使用EventLog记录异常。有一个后台线程,它在事件日志变满后进行检查,并通过编程将条目传输到XML文件中,然后清除事件日志 这很好,但似乎有太多的工作要做,我认为最好是简单地复制用于记录当前应用程序的.evt文件,然后清除事件日志 有没有办法找到在每个windows操作系统上都可以使用的文件的位置/路径 它的用途 但是我的应用程序日志名没有文件属性。现在如何存档它们?也许可以改进该方法以获得性能 这里有一个例子 EventLogSession els = new EventLogSe
但是我的应用程序日志名没有文件属性。现在如何存档它们?也许可以改进该方法以获得性能 这里有一个例子
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()方法
更多信息可在此处找到:
谢谢,这很有帮助。看起来ClearLog方法使用起来非常简单,我注意到您提到了性能,ClearLog是性能方面的最佳选择吗?这对我很重要,因为性能是这一变化的主要原因。我不知道,但我肯定会将其与您现在拥有的任何实现进行比较。
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);
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