LogStore Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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) |