LogStore Klas

Definitie

Vertegenwoordigt een logboekgestructureerde opslag.

public ref class LogStore sealed : IDisposable
public sealed class LogStore : IDisposable
type LogStore = class
    interface IDisposable
Public NotInheritable Class LogStore
Implements IDisposable
Overname
LogStore
Implementeringen

Voorbeelden

In het volgende voorbeeld ziet u hoe u een LogStore xml-document kunt archiveren.

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();
        }
    }
}
Friend Class LogBackup
    Private Shared Sub ArchiveToXML(ByVal logStore As LogStore, ByVal fileName As String)
        Dim snapshot As LogArchiveSnapshot = logStore.CreateLogArchiveSnapshot()

        Dim writer As New XmlTextWriter(fileName, Encoding.ASCII)

        writer.WriteStartElement("logArchive")
        For Each region As FileRegion In snapshot.ArchiveRegions
            writer.WriteStartElement("fileRegion")
            writer.WriteElementString("path", region.Path)
            writer.WriteElementString("length", region.FileLength.ToString())
            writer.WriteElementString("offset", region.Offset.ToString())
            Using dataStream As Stream = region.GetStream()
                Dim data(dataStream.Length - 1) As Byte
                dataStream.Read(data, 0, data.Length)
                writer.WriteElementString("data", Convert.ToBase64String(data))
            End Using
            writer.WriteEndElement()
        Next region
        writer.WriteEndElement()
        writer.Close()
        logStore.SetArchiveTail(snapshot.LastSequenceNumber)

    End Sub
    Private Shared Sub RestoreFromXML(ByVal fileName As String)
        Using reader As New XmlTextReader(fileName)
            reader.ReadStartElement("logArchive")
            Do While reader.IsStartElement()
                Dim path = reader.ReadElementString("path")
                Dim length = Int64.Parse(reader.ReadElementString("length"))
                Dim offset = Int64.Parse(reader.ReadElementString("offset"))
                Dim dataString = reader.ReadElementString("data")
                Dim data() = Convert.FromBase64String(dataString)
                Dim fileStream As FileStream
                fileStream = New FileStream(path, FileMode.OpenOrCreate, FileAccess.Write)
                Using fileStream
                    fileStream.SetLength(length)
                    fileStream.Position = offset
                    fileStream.Write(data, 0, data.Length)
                End Using
            Loop
            reader.ReadEndElement()
        End Using
    End Sub
End Class

Opmerkingen

De LogRecordSequence klasse biedt een implementatie van de recordreeksinterface boven op een CLFS-logboek (Common Log File System). Het werkt met de LogStore klasse, die een interface biedt voor het rechtstreeks bewerken en beheren van een CLFS-logboekbestand. Een logboekarchief biedt opslag voor alleen toevoegbewerkingen voor een set schijven. De LogStore klasse vertegenwoordigt deze opslag en biedt methoden voor het toevoegen en verwijderen van containers, het instellen van beleid en het maken van archieven. Het biedt geen methoden voor het lezen van en schrijven naar de opslag; deze methoden worden geleverd door de LogRecordSequence klasse.

De relatie tussen de LogStore klasse en de LogRecordSequence klasse is vergelijkbaar met de relatie tussen een schijfbestand en een FileStream object. Het schijfbestand biedt de werkelijke opslag en heeft kenmerken zoals lengte en laatste toegangstijd, terwijl het FileStream object een weergave biedt van het bestand dat kan worden gebruikt om van het bestand te lezen en ernaar te schrijven. Op dezelfde manier heeft de LogStore klasse kenmerken zoals een beleid en een verzameling schijflengten en biedt de LogRecordSequence klasse een recordgeoriënteerd mechanisme voor het lezen en schrijven van gegevens.

In tegenstelling tot de bestandsrecordreeks die wordt vertegenwoordigd door de FileRecordSequence klasse, slaat een LogStore exemplaar de gegevens op in een verzameling schijflengten, vertegenwoordigd door LogExtent exemplaren. De gebieden in een bepaald LogStore exemplaar zijn allemaal uniform en ruimte wordt toegevoegd aan en verwijderd uit een LogStore instantie in stappen. Als u logboeken wilt toevoegen en verwijderen, gebruikt u de Add en Remove methoden van het LogExtentCollection object, die door de Extents eigenschap kunnen worden geretourneerd.

Aan een LogStore exemplaar kan beleid zijn gekoppeld. Deze worden vertegenwoordigd door LogPolicy exemplaren die kunnen worden geretourneerd door de Policy eigenschap. Een beleid bepaalt regels die door het logboek worden gevolgd, zoals het maximum aantal gebieden en de minimale grootte, en instructies voor het vergroten of verkleinen van de LogStore onder bepaalde voorwaarden. Daarnaast kunt u opgeven of een LogStore exemplaar kan worden gearchiveerd. Beleidsregels worden per logboek ingesteld en zijn vluchtig, wat betekent dat zodra elke ingang voor het logboek is gesloten, het beleid niet meer bestaat.

Constructors

Name Description
LogStore(SafeFileHandle)

Initialiseert een nieuw exemplaar van de LogStore klasse voor de opgegeven ingang.

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

Initialiseert een nieuw exemplaar van de LogStore klasse.

LogStore(String, FileMode, FileAccess, FileShare)

Initialiseert een nieuw exemplaar van de LogStore klasse.

LogStore(String, FileMode, FileAccess)

Initialiseert een nieuw exemplaar van de LogStore klasse met het opgegeven pad, de modus en de toegang.

LogStore(String, FileMode)

Initialiseert een nieuw exemplaar van de LogStore klasse met het opgegeven pad en de opgegeven modus.

Eigenschappen

Name Description
Archivable

Hiermee wordt een waarde opgehaald die aangeeft of dit LogStore exemplaar kan worden gearchiveerd.

BaseSequenceNumber

Hiermee haalt u het laagste volgnummer op dat overeenkomt met een geldige record in dit LogStore exemplaar.

Extents

Hiermee haalt u de verzameling logboek-gebieden op die de gegevens voor dit logboekarchief bevatten.

FreeBytes

Hiermee haalt u het aantal beschikbare bytes op in het logboekarchief.

Handle

Hiermee haalt u de bestandsingang van het besturingssysteem op voor het logboekbestand dat door het huidige LogStore exemplaar wordt ingekapseld.

LastSequenceNumber

Wanneer deze wordt overschreven in een afgeleide klasse, haalt u het volgnummer op van de volgende record die moet worden toegevoegd aan het logboekarchief.

Length

Hiermee wordt de grootte van het logboekarchief, in bytes, opgeslagen.

Policy

Hiermee haalt u het beleid op dat is gekoppeld aan dit logboekarchief.

StreamCount

Hiermee haalt u het aantal logboekstreams op in dit logboekarchief.

Methoden

Name Description
CreateLogArchiveSnapshot()

Maakt een momentopname van de status van het logboekarchief voor het maken van een back-up.

CreateLogArchiveSnapshot(SequenceNumber, SequenceNumber)

Maakt een momentopname van de status van het logboekarchief tussen de opgegeven reeksnummers voor het maken van een back-up.

Delete(String)

Hiermee verwijdert u het logboekarchief.

Dispose()

Alle resources die worden gebruikt door de LogStore.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
SetArchiveTail(SequenceNumber)

Hiermee stelt u het volgnummer van de archiefstaart in.

ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Van toepassing op