C#使用EventLogSession创建.tmp文件导出事件日志。

问题描述 投票:0回答:1

我正在使用下面的代码来导出一些事件日志。

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个回答
0
投票

我无法复制创建临时文件,使用以下代码,在Windows 10,Visual Studio 2019,.NET Core 3.1 Console App上运行。 我安装了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,并在几秒钟内导出到指定路径。 你选择的日志是不是特别大?

临时文件不太可能需要,手动删除它们,或者在你的日志被转储后编写一些代码来删除它们。

出于好奇,你可以尝试从Event Viewer内手动导出这些日志,看看临时文件是否是由Event Viewer创建的。 另外,如果允许的话,可以尝试在Event Viewer中缩小大小,然后运行你的代码,看看是否仍然创建了临时文件。

© www.soinside.com 2019 - 2024. All rights reserved.