Размер журнала событий основан на размере хранилища, а не на количестве записей, поэтому было бы немного трудно определить, заполнен ли журнал событий или нет. Например,
bool logFull = false;
EventLog e = ... // get the needed event log
var sizeKB = e.MaximumKilobytes; // event log size
// Check current event log size
var regEntry = Rgistry.LocalMachine.OpenSubKey("System\\CurrentControlSet\\Services\\EventLog\\" + e.Log);
if (regEntry != null)
{
var filePath = regEntry.GetValue("File");
if (filePath != null)
{
var file = new FileInfo(filePath.ToString());
if (file.Exists)
{
var fileSize = (file.Length + 1023) / 1024;
logFull = (fileSize >= sizeKB); // a 1K margin
}
}
}
Таким образом, приведенный выше код использует запас в 1 КБ, чтобы решить, заполнен ли файл журнала или нет. Поэтому я хотел бы предложить вам всегда оборачивать свой код записи записи события в блок исключения, чтобы избежать редкого сценария, когда текущий журнал может привести вас к превышению размера журнала событий.