EventLog.MinimumRetentionDays 屬性

定義

取得事件記錄檔項目的保留天數。

C#
[System.ComponentModel.Browsable(false)]
public int MinimumRetentionDays { get; }
C#
[System.ComponentModel.Browsable(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public int MinimumRetentionDays { get; }

屬性值

保留事件記錄檔項目的天數。 預設值為 7。

屬性

範例

下列範例會列舉本機計算機上定義的事件記錄檔,並顯示每個事件記錄檔的組態詳細數據。

C#
static void DisplayEventLogProperties()
{
    // Iterate through the current set of event log files,
    // displaying the property settings for each file.

    EventLog[] eventLogs = EventLog.GetEventLogs();
    foreach (EventLog e in eventLogs)
    {
        Int64 sizeKB = 0;

        Console.WriteLine();
        Console.WriteLine("{0}:", e.LogDisplayName);
        Console.WriteLine("  Log name = \t\t {0}", e.Log);

        Console.WriteLine("  Number of event log entries = {0}", e.Entries.Count.ToString());

        // Determine if there is an event log file for this event log.
        RegistryKey regEventLog = Registry.LocalMachine.OpenSubKey("System\\CurrentControlSet\\Services\\EventLog\\" + e.Log);
        if (regEventLog != null)
        {
            Object temp = regEventLog.GetValue("File");
            if (temp != null)
            {
                Console.WriteLine("  Log file path = \t {0}", temp.ToString());
                FileInfo file = new FileInfo(temp.ToString());

                // Get the current size of the event log file.
                if (file.Exists)
                {
                    sizeKB = file.Length / 1024;
                    if ((file.Length % 1024) != 0)
                    {
                        sizeKB++;
                    }
                    Console.WriteLine("  Current size = \t {0} kilobytes", sizeKB.ToString());
                }
            }
            else
            {
                Console.WriteLine("  Log file path = \t <not set>");
            }
        }

        // Display the maximum size and overflow settings.

        sizeKB = e.MaximumKilobytes;
        Console.WriteLine("  Maximum size = \t {0} kilobytes", sizeKB.ToString());
        Console.WriteLine("  Overflow setting = \t {0}", e.OverflowAction.ToString());

        switch (e.OverflowAction)
        {
            case OverflowAction.OverwriteOlder:
                Console.WriteLine("\t Entries are retained a minimum of {0} days.",
                    e.MinimumRetentionDays);
                break;
            case OverflowAction.DoNotOverwrite:
                Console.WriteLine("\t Older entries are not overwritten.");
                break;
            case OverflowAction.OverwriteAsNeeded:
                Console.WriteLine("\t If number of entries equals max size limit, a new event log entry overwrites the oldest entry.");
                break;
            default:
                break;
        }
    }
}

備註

MinimumRetentionDays使用屬性來檢查事件記錄檔的目前設定。 使用 ModifyOverflowPolicy 變更事件記錄檔中每個項目必須保留的最小天數。

MinimumRetentionDays 取決於事件記錄檔的已設定溢位行為。 OverflowAction如果事件記錄檔的 屬性設定OverwriteAsNeeded為 ,則MinimumRetentionDays值為 0。 OverflowAction如果事件記錄檔的 屬性設定DoNotOverwrite為 ,則MinimumRetentionDays值為 -1。 OverflowAction如果事件記錄檔的 屬性設定OverwriteOlder為 ,則MinimumRetentionDays此值大於零,並代表事件記錄檔已滿時保留事件記錄檔專案的天數。

只有在事件記錄檔達到其大小限制時,才會發生溢位行為。 EventLog當 設定為 OverflowActionOverwriteOlder時,而且事件記錄檔達到其大小上限時,只有當新專案可以取代其年齡超過MinimumRetentionDays期間的專案時,才會寫入新的專案。 在定期封存事件記錄檔時,保留事件項目的時間下限是適當的。 否則,當事件記錄檔達到其限制時,您可能會遺失新專案。 若要避免遺失新的事件資訊,請根據特定事件記錄檔的封存排程設定事件的最低保留天數。

適用於

產品 版本
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

另請參閱