Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

EventLog.MaximumKilobytes Property

Gets or sets the maximum event log size in kilobytes.

Namespace: System.Diagnostics
Assembly: System (in system.dll)

[ComVisibleAttribute(false)] 
public long MaximumKilobytes { get; set; }
/** @property */
public long get_MaximumKilobytes ()

/** @property */
public void set_MaximumKilobytes (long value)

public function get MaximumKilobytes () : long

public function set MaximumKilobytes (value : long)

Not applicable.

Property Value

The maximum event log size in kilobytes. The default is 512, indicating a maximum file size of 512 kilobytes.
Exception typeCondition

ArgumentOutOfRangeException

The specified value is less than 64, or greater than 4194240, or not an even multiple of 64.

InvalidOperationException

The Log value is not a valid log name.

- or -

The registry key for the event log could not be opened on the target computer.

The MaximumKilobytes property represents the size limit of the event log file. When the event log reaches the size limit, the configured OverflowAction value determines whether new entries are discarded, or whether new entries overwrite older entries.

NoteNote:

This property represents a configuration setting for the event log represented by this instance. When the event log reaches its maximum size, this property specifies how the operating system handles new entries written by all event sources registered for the event log.

The following example enumerates the event logs defined on the local computer, and displays configuration details for each event log.

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;
        }
    }
}

static void DisplayEventLogProperties()
{
    // Iterate through the current set of event log files,
    // displaying the property settings for each file.
    EventLog eventLogs[] = EventLog.GetEventLogs();
    EventLog e;
    for ( int iCtr = 0; iCtr < eventLogs.length; iCtr++ ) {
        e = eventLogs[iCtr];
        long sizeKB = 0;

        Console.WriteLine();
        Console.WriteLine("{0}:", e.get_LogDisplayName());
        Console.WriteLine("  Log name = \t\t {0}", e.get_Log());
        Console.WriteLine("  Number of event log entries = {0}",
            ((Int32)e.get_Entries().get_Count()).ToString());

        // Determine if there is an event log file for this event log.
        RegistryKey regEventLog = Registry.LocalMachine.
            OpenSubKey("System\\CurrentControlSet\\Services\\EventLog\\"
            + e.get_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.get_Exists()) {
                    sizeKB = file.get_Length() / 1024;
                    if (file.get_Length() % 1024 != 0) {
                        sizeKB++;
                    }

                    Console.WriteLine("  Current size = \t {0} kilobytes",
                        ((Int64)sizeKB).ToString());
                }
            }
            else {
                Console.WriteLine("  Log file path = \t <not set>");
            }
        }

        // Display the maximum size and overflow settings.
        sizeKB = e.get_MaximumKilobytes();
        Console.WriteLine("  Maximum size = \t {0} kilobytes", 
            ((Int64)sizeKB).ToString());
        Console.WriteLine("  Overflow setting = \t {0}",
            e.get_OverflowAction().ToString());
        switch (e.get_OverflowAction()) {
            case OverflowAction.OverwriteOlder :
                Console.WriteLine("\t Entries are retained a minimum of "
                    + "{0} days.", (Int32)e.get_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;
        }
    }
} //DisplayEventLogProperties

Windows Server 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0
Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.