LogStore Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Representerar en loggstrukturerad lagring.
public ref class LogStore sealed : IDisposable
public sealed class LogStore : IDisposable
type LogStore = class
interface IDisposable
Public NotInheritable Class LogStore
Implements IDisposable
- Arv
-
LogStore
- Implementeringar
Exempel
I följande exempel visas hur du arkiverar ett LogStore till ett XML-dokument.
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
Kommentarer
Klassen LogRecordSequence tillhandahåller en implementering av postsekvensgränssnittet ovanpå en CLFS-logg (Common Log File System). Den fungerar med LogStore klassen, som tillhandahåller ett gränssnitt för direktmanipulering och hantering av en CLFS-loggfil. Ett loggarkiv tillhandahåller lagring med endast tillägg i en uppsättning diskutrymmen. Klassen LogStore representerar den här lagringen och innehåller metoder för att lägga till och ta bort containrar, ange princip och skapa arkiv. Den tillhandahåller inte metoder för att läsa från och skriva till lagringen. dessa metoder tillhandahålls av LogRecordSequence klassen.
Relationen mellan LogStore klassen och LogRecordSequence klassen liknar relationen mellan en diskfil och ett FileStream objekt. Diskfilen tillhandahåller det faktiska lagringsutrymmet och har attribut som längd och senaste åtkomsttid, medan FileStream objektet ger en vy över filen som kan användas för att läsa från den och skriva till den. LogStore På samma sätt har klassen attribut som en princip och en samling diskutrymmenLogRecordSequence, och klassen tillhandahåller en postorienterad mekanism för att läsa och skriva data.
Till skillnad från filpostsekvensen FileRecordSequence som representeras av klassen lagrar en LogStore instans sina data i en samling diskutrymmen, som representeras av LogExtent instanser. Omfattningarna i en viss LogStore instans är alla av enhetlig storlek och utrymmet läggs till och tas bort från en LogStore instans i utsträckningssteg. Om du vill lägga till och ta bort loggens omfattningar använder Add du -metoderna och Remove för LogExtentCollection objektet, som kan returneras av Extents egenskapen.
En LogStore instans kan ha principer associerade med den. Dessa representeras av LogPolicy instanser som kan returneras av Policy egenskapen. En princip dikterar regler som loggen försöker följa, till exempel maximalt antal omfattningar och minsta storlek, samt instruktioner om att växa eller krympa LogStore under vissa förhållanden. Dessutom kan du ange om en LogStore instans kan arkiveras. Principer anges per logg och är flyktiga, vilket innebär att principen inte längre finns när varje handtag till loggen stängs.
Konstruktorer
| Name | Description |
|---|---|
| LogStore(SafeFileHandle) |
Initierar en ny instans av LogStore klassen för det angivna handtaget. |
| LogStore(String, FileMode, FileAccess, FileShare, FileSecurity) |
Initierar en ny instans av LogStore klassen. |
| LogStore(String, FileMode, FileAccess, FileShare) |
Initierar en ny instans av LogStore klassen. |
| LogStore(String, FileMode, FileAccess) |
Initierar en ny instans av LogStore klassen med den angivna sökvägen, läget och åtkomsten. |
| LogStore(String, FileMode) |
Initierar en ny instans av LogStore klassen med den angivna sökvägen och läget. |
Egenskaper
| Name | Description |
|---|---|
| Archivable |
Hämtar ett värde som anger om den här LogStore instansen kan arkiveras. |
| BaseSequenceNumber |
Hämtar det lägsta sekvensnumret som motsvarar en giltig post i den här LogStore instansen. |
| Extents |
Hämtar insamlingen av loggutbredningar som innehåller data för det här logglagret. |
| FreeBytes |
Hämtar antalet tillgängliga byte i loggarkivet. |
| Handle |
Hämtar operativsystemets filhandtag för loggfilen som den aktuella LogStore instansen kapslar in. |
| LastSequenceNumber |
När den åsidosättas i en härledd klass hämtar sekvensnumret för nästa post som ska läggas till i loggarkivet. |
| Length |
Hämtar loggarkivets storlek i byte. |
| Policy |
Hämtar principen som är associerad med det här loggarkivet. |
| StreamCount |
Hämtar antalet loggströmmar i det här loggarkivet. |
Metoder
| Name | Description |
|---|---|
| CreateLogArchiveSnapshot() |
Tar en ögonblicksbild av logglagringstillståndet för att göra en säkerhetskopia. |
| CreateLogArchiveSnapshot(SequenceNumber, SequenceNumber) |
Tar en ögonblicksbild av logglagringstillståndet mellan de angivna sekvensnumren för att göra en säkerhetskopia. |
| Delete(String) |
Tar bort loggarkivet. |
| Dispose() |
Släpper alla resurser som används av LogStore. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| SetArchiveTail(SequenceNumber) |
Anger sekvensnumret för arkivsvansen. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |