C# Экспорт журналов событий с использованием EventLogSession создает файлы .tmp - PullRequest
0 голосов
/ 26 апреля 2020

Я использую следующий код для экспорта некоторых журналов событий:

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

Я заметил, что каждый раз, когда этот метод вызывается, он создает файлы .tmp в: C: \ Windows \ ServiceProfiles \ LocalService \ AppData \ Local \ Temp, например: EVT14B4.tmp, EVTA3B c .tmp ...

Вы поняли.

Почему это происходит? Есть ли способ удалить его в конце операции автоматически? Если нет, я должен удалить его вручную?

1 Ответ

0 голосов
/ 26 апреля 2020

Я не могу реплицировать создание временных файлов, используя следующий код, работающий на 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");
        }

Журналы имеют размер 10 МБ и 6 МБ соответственно и экспортируются в течение пары секунд по указанному пути. Журналы, которые вы выбираете, особенно велики?

Временные файлы вряд ли понадобятся; удалите их вручную или напишите что-нибудь, чтобы удалить их после того, как ваши журналы выгружены.

Из любопытства, вы можете попробовать вручную экспортировать эти журналы из Просмотрщика событий, чтобы проверить, создаются ли временные файлы средством просмотра событий. Также, если это разрешено, попробуйте уменьшить размер в Event Viewer, а затем запустите свой код, чтобы посмотреть, созданы ли временные файлы.

...