我正在使用下面的代码来导出一些事件日志。
EventLogSession eventLogSession = new EventLogSession(machineName);
eventLogSession.ExportLogAndMessages(logName, PathType.LogName, query, remoteTempFile);
我注意到每次调用这个方法时 都会在以下地方创建.tmp文件: C:Windows/ServiceProfiles/LocalService/AppData/Local/Temp,比如:EVT14B4.tmp, EVTA3Bc.tmp... ...
你懂的
为什么会出现这种情况?有沒有辦法在操作結束時自動刪除它呢?
我无法复制创建临时文件,使用以下代码,在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中缩小大小,然后运行你的代码,看看是否仍然创建了临时文件。