Exportar (0) Imprimir
Expandir todo

EventLog.MinimumRetentionDays (Propiedad)

Obtiene el número de días que se deben conservar las entradas en el registro de eventos.

Espacio de nombres: System.Diagnostics
Ensamblado: System (en system.dll)

[ComVisibleAttribute(false)] 
public int MinimumRetentionDays { get; }
/** @property */
public int get_MinimumRetentionDays ()

public function get MinimumRetentionDays () : int

No aplicable.

Valor de propiedad

Número de días que se conservan las entradas del registro de eventos. El valor predeterminado es 7.

La propiedad MinimumRetentionDays se utiliza para examinar la configuración actual de un registro de eventos. ModifyOverflowPolicy se utiliza para cambiar el número mínimo de días que se debe conservar cada entrada en el registro de eventos.

El valor MinimumRetentionDays depende del comportamiento de desbordamiento configurado para el registro de eventos. Si la propiedad OverflowAction de un registro de eventos se establece en OverwriteAsNeeded, el valor de MinimumRetentionDays es 0. Si la propiedad OverflowAction de un registro de eventos se establece en DoNotOverwrite, el valor de MinimumRetentionDays es -1. Si la propiedad OverflowAction de un registro de eventos se establece en OverwriteOlder, el valor de MinimumRetentionDays es mayor que cero y representa el número de días que se van a conservar las entradas del registro de eventos cuando esté lleno.

El comportamiento de desbordamiento sólo tiene lugar cuando un registro de eventos alcanza su límite de tamaño. Cuando EventLog tiene la propiedad OverflowAction establecida en OverwriteOlder y el registro de eventos alcanza su tamaño máximo, sólo se escribirán entradas nuevas si pueden reemplazar a otras cuya antigüedad supere el período de MinimumRetentionDays. Es conveniente conservar las entradas de eventos durante un período mínimo cuando el registro vaya a archivarse con regularidad. De lo contrario, se corre el riesgo de perder entradas nuevas cada vez que el registro de eventos alcanza su límite. Para no perder esta información, deberá establecerse el número mínimo de días de retención de los eventos en función de la programación de archivado de cada registro.

En el ejemplo siguiente se enumeran los registros de eventos definidos en el equipo local y se muestran los detalles de la configuración de cada uno.

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 98, Windows 2000 Service Pack 4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft