Ler en inglés

Compartir por


LogStore Clase

Definición

Representa un almacenamiento estructurado del registro.

C#
public sealed class LogStore : IDisposable
Herencia
LogStore
Implementaciones

Ejemplos

El ejemplo siguiente muestra cómo archivar LogStore en un documento XML.

C#
class LogBackup
{
    static void ArchiveToXML(LogStore logStore, string fileName)
    {
        LogArchiveSnapshot snapshot = logStore.CreateLogArchiveSnapshot();

        XmlTextWriter writer = new XmlTextWriter(fileName, Encoding.ASCII);

        writer.WriteStartElement("logArchive");
        foreach(FileRegion region in snapshot.ArchiveRegions)
        {
            writer.WriteStartElement("fileRegion");
            writer.WriteElementString("path", region.Path);
            writer.WriteElementString("length", region.FileLength.ToString());
            writer.WriteElementString("offset", region.Offset.ToString());
            using(Stream dataStream = region.GetStream())
            {
                byte[] data = new byte[dataStream.Length];
                dataStream.Read(data, 0, data.Length);
                writer.WriteElementString("data", Convert.ToBase64String(data));
            }
            writer.WriteEndElement();
        }
        writer.WriteEndElement();
        writer.Close();
        logStore.SetArchiveTail(snapshot.LastSequenceNumber);
    }
    static void RestoreFromXML(string fileName)
    {
        using(XmlTextReader reader = new XmlTextReader(fileName))
        {
            reader.ReadStartElement("logArchive");
            while(reader.IsStartElement())
            {
                string path = reader.ReadElementString("path");
                long length = Int64.Parse(reader.ReadElementString("length"));
                long offset = Int64.Parse(reader.ReadElementString("offset"));
                string dataString = reader.ReadElementString("data");
                byte[] data = Convert.FromBase64String(dataString);
                FileStream fileStream;
                using(fileStream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write))
                {
                    fileStream.SetLength(length);
                    fileStream.Position = offset; fileStream.Write(data, 0, data.Length);
                }
            }
        reader.ReadEndElement();
        }
    }
}

Comentarios

La clase LogRecordSequence proporciona una implementación de la interfaz de secuencia de registro encima de un registro de Sistema de Registro Archivo Común (CLFS). Funciona con la clase LogStore, que proporciona una interfaz para manipular directamente y administrar un archivo de registro de CLFS. Un almacén de registro proporciona el almacenamiento de sólo anexar por un conjunto de extensiones del disco. La clase LogStore representa este almacenamiento y proporciona métodos para agregar y quitar contenedores, configurar una directiva y crear archivos. No proporciona los métodos para leer de y escribir en el almacenamiento; la clase LogRecordSequence proporciona estos métodos.

La relación entre la clase LogStore y la clase LogRecordSequence es similar a la relación entre un archivo de disco y un objeto FileStream. El archivo de disco proporciona el almacenamiento real y tiene atributos como longitud y último tiempo de acceso, mientras que el objeto FileStream proporciona una vista en el archivo que se puede utilizar para leer de él y para escribir en él. De igual forma, la clase LogStore tiene los atributos como una directiva y una colección de extensiones del disco y la clase LogRecordSequence proporciona un mecanismo orientado a registro para leer y escribir los datos.

A diferencia de la secuencia de registro de archivo representada por la clase FileRecordSequence, una instancia LogStore almacena sus datos en una colección de extensiones del disco, representada por instancias LogExtent. Las extensiones en una instancia LogStore determinada son todas de tamaño uniforme y el espacio se agrega a y se quita de una instancia LogStore en incrementos de la extensión. Para agregar y quitar las extensiones del registro, utilice Add y los métodos Remove del objeto LogExtentCollection, que puede ser devuelto por la propiedad Extents.

Una instancia LogStore puede tener las directivas asociadas a él. Éstas están representadas por las instancias LogPolicy que pueden ser devueltas por la propiedad Policy . Una directiva dicta reglas que el registro intentará seguir, como número máximo de extensiones y tamaño mínimo e instrucciones en crecer o reducir LogStore bajo ciertas condiciones. Además, puede especificar si una instancia LogStore puede estar almacenada. Las directivas se establecen para cada registro y son volátiles, lo que significa que una vez se cierra cada controlador del registro, la directiva deja de existir.

Constructores

LogStore(SafeFileHandle)

Inicializa una nueva instancia de la clase LogStore para un identificador especificado.

LogStore(String, FileMode)

Inicializa una nueva instancia de la clase LogStore con el trazado especificado y el modo.

LogStore(String, FileMode, FileAccess)

Inicializa una nueva instancia de la clase LogStore con el trazado especificado, el modo y el acceso.

LogStore(String, FileMode, FileAccess, FileShare)

Inicializa una nueva instancia de la clase LogStore.

LogStore(String, FileMode, FileAccess, FileShare, FileSecurity)

Inicializa una nueva instancia de la clase LogStore.

Propiedades

Archivable

Obtiene un valor que indica si esta instancia LogStore puede almacenarse.

BaseSequenceNumber

Obtiene el número de secuencia más bajo que corresponde a un registro válido en las instanciasLogStore.

Extents

Obtiene la colección de extensiones del registro que contienen los datos para este almacén del registro.

FreeBytes

Obtiene el número de bytes disponible en el almacén del registro.

Handle

Obtiene el identificador de archivo del sistema operativo correspondiente al archivo de registro que la instancia actual LogStore encapsula.

LastSequenceNumber

Cuando se invalida en una clase derivada, consigue anexar el número de secuencia del registro siguiente al almacén del registro.

Length

Obtiene el tamaño del almacén de registro en bytes.

Policy

Obtiene la directiva asociada a este almacén del registro.

StreamCount

Obtiene el número de secuencias de registro de este almacén de registro.

Métodos

CreateLogArchiveSnapshot()

Toma una captura del estado de almacén de registro para realizar una copia de seguridad.

CreateLogArchiveSnapshot(SequenceNumber, SequenceNumber)

Toma una captura del estado de almacén de registro entre los números de secuencia especificados para realizar una copia de seguridad.

Delete(String)

Quita el almacén del registro.

Dispose()

Libera todos los recursos que usa LogStore.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
SetArchiveTail(SequenceNumber)

Establece el número de secuencia de la cola del archivo.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Produto Versións
.NET Framework 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