【问题标题】:Get the location of windows event log files获取 windows 事件日志文件的位置
【发布时间】:2012-06-23 09:56:51
【问题描述】:

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

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

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

使用 suggested

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

但是我的应用程序日志名称没有文件属性。

【问题讨论】:

    标签: c# .net logging event-log


    【解决方案1】:

    您现在如何归档它们?也许可以改进该方法以提高性能。

    这是一个例子。

    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
    

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

    Export, Archive, and Clear Event Logs

    【讨论】:

    • 谢谢,这很有帮助。看起来 ClearLog 方法使用起来非常简单,我注意到你提到了性能,ClearLog 是性能方面的最佳选择吗?这对我很重要,因为性能是这种变化的主要原因。
    • 不知道,但我肯定会将它与您现在拥有的任何实现进行比较。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-02
    • 1970-01-01
    • 2011-01-08
    相关资源
    最近更新 更多