【问题标题】:C# Exporting event logs using EventLogSession create .tmp filesC# 使用 EventLogSession 导出事件日志创建 .tmp 文件
【发布时间】:2020-04-26 15:25:24
【问题描述】:

我正在使用以下代码导出一些事件日志:

EventLogSession eventLogSession = new EventLogSession(machineName);
eventLogSession.ExportLogAndMessages(logName, PathType.LogName, query, remoteTempFile);

我注意到,每次调用此方法时,它都会在以下位置创建 .tmp 文件:C:\Windows\ServiceProfiles\LocalService\AppData\Local\Temp,例如: EVT14B4.tmp、EVTA3Bc.tmp...

你明白了。

为什么会这样?有没有办法在操作结束时自动删除它? 如果没有,我应该手动删除它吗?

【问题讨论】:

    标签: c# event-log temporary-files


    【解决方案1】:

    我无法使用以下代码复制临时文件的创建,在 Windows 10、Visual Studio 2019、.NET Core 3.1 控制台应用程序上运行。我安装了 NuGet 包 System.Diagnostics.EventLog:

     static void Main()
            {
                EventLogSession eventLogSession = new EventLogSession("yourComputerName");
                eventLogSession.ExportLogAndMessages("Application", PathType.LogName, "*", "c:\\temp\\Application.log");
                eventLogSession.ExportLogAndMessages("System", PathType.LogName, "*", "c:\\temp\\System.log");
            }
    

    日志分别为 10MB 和 6MB,并在几秒钟内导出到指定路径。您选择的日志是不是特别大?

    临时文件不太可能需要;在转储日志后手动删除它们或编写代码删除它们。

    出于好奇,您可以尝试从事件查看器中手动导出这些日志,以查看临时文件是否由事件查看器创建。此外,如果允许,请尝试在事件查看器中减小大小,然后运行您的代码,以查看临时文件是否仍然创建。

    【讨论】:

    • 是的,它们很大。
    • @DanielRahamim 为我的回答添加了更多建议。
    • 刚刚用这些特定的代码行测试了它 - 并创建了 3 个文件:EVT*.tmp MSG*.tmp PUB*.tmp 导出的日志文件大小为 7MB。
    • 我还检查了它是否发生在小日志(约 70 条记录)上
    猜你喜欢
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 1970-01-01
    相关资源
    最近更新 更多