LogStore Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Günlük yapılandırılmış bir depolamayı temsil eder.
public ref class LogStore sealed : IDisposable
public sealed class LogStore : IDisposable
type LogStore = class
interface IDisposable
Public NotInheritable Class LogStore
Implements IDisposable
- Devralma
-
LogStore
- Uygulamalar
Örnekler
Aşağıdaki örnekte, bir LogStore XML belgesine arşivlemeyi gösterir.
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
Açıklamalar
sınıfı, LogRecordSequence Ortak Günlük Dosya Sistemi (CLFS) günlüğünün üzerinde kayıt dizisi arabiriminin bir uygulamasını sağlar. ClFS günlük dosyasını doğrudan işlemek ve yönetmek için bir arabirim sağlayan sınıfıyla LogStore çalışır. Günlük deposu, bir dizi disk uzantısında yalnızca ekleme depolama alanı sağlar. sınıfı LogStore bu depolamayı temsil eder ve kapsayıcı ekleme ve kaldırma, ilke ayarlama ve arşiv oluşturma yöntemleri sağlar. Depolamadan okuma ve depolamaya yazma yöntemleri sağlamaz; bu yöntemler sınıfı tarafından LogRecordSequence sağlanır.
sınıfı ile LogRecordSequence sınıfı arasındaki LogStore ilişki, disk dosyası ve FileStream nesne arasındaki ilişkiye benzer. Disk dosyası gerçek depolamayı sağlar ve uzunluk ve son erişim zamanı gibi özniteliklere sahiptir, nesne ise FileStream dosya üzerinde dosyadan okumak ve dosyaya yazmak için kullanılabilecek bir görünüm sağlar. Benzer şekilde, sınıfın LogStore bir ilke ve disk kapsamları koleksiyonu gibi öznitelikleri vardır ve LogRecordSequence sınıfı verileri okumak ve yazmak için kayıt odaklı bir mekanizma sağlar.
Sınıfı tarafından temsil edilen dosya kaydı dizisini FileRecordSequence aksine, bir LogStore örnek verilerini örneklerle LogExtent temsil edilen bir disk kapsamları koleksiyonunda depolar. Belirli LogStore bir örnekteki kapsamların tümü tekdüzen boyuttadır ve uzantı artışlarıyla bir LogStore örneğe eklenen ve kaldırılan alandır. Günlük uzantılarını eklemek ve kaldırmak için, özelliği tarafından Extents döndürülebilen nesnesinin LogExtentCollection ve Remove yöntemlerini kullanınAdd.
Bir LogStore örneğin kendisiyle ilişkilendirilmiş ilkeleri olabilir. Bunlar, özelliği tarafından LogPolicy döndürülebilen örneklerle Policy temsil edilir. İlke, günlüğün izlemeye çalışacağı maksimum kapsam sayısı ve minimum boyut gibi kuralları ve belirli koşullar altında büyütme veya küçültme yönergelerini LogStore belirler. Ayrıca, bir LogStore örneğin arşivlenip arşivlenmeyeceğini belirtebilirsiniz. İlkeler günlük başına ayarlanır ve geçicidir, başka bir deyişle günlükte her tanıtıcı kapatıldıktan sonra ilke artık mevcut olmaz.
Oluşturucular
| Name | Description |
|---|---|
| LogStore(SafeFileHandle) |
Belirtilen tanıtıcı için sınıfının yeni bir örneğini LogStore başlatır. |
| LogStore(String, FileMode, FileAccess, FileShare, FileSecurity) |
LogStore sınıfının yeni bir örneğini başlatır. |
| LogStore(String, FileMode, FileAccess, FileShare) |
LogStore sınıfının yeni bir örneğini başlatır. |
| LogStore(String, FileMode, FileAccess) |
Belirtilen yol, mod ve erişim ile sınıfının yeni bir örneğini LogStore başlatır. |
| LogStore(String, FileMode) |
Belirtilen yol ve mod ile sınıfının yeni bir örneğini LogStore başlatır. |
Özellikler
| Name | Description |
|---|---|
| Archivable |
Bu LogStore örneğin arşivlenip arşivlenemediğini belirten bir değer alır. |
| BaseSequenceNumber |
Bu LogStore örnekte geçerli bir kayda karşılık gelen en düşük sıra numarasını alır. |
| Extents |
Bu günlük deposuna ait verileri içeren günlük kapsamları koleksiyonunu alır. |
| FreeBytes |
Günlük deposundaki kullanılabilir bayt sayısını alır. |
| Handle |
Geçerli LogStore örneğin kapsüllediğini günlük dosyasının işletim sistemi dosya tutamacını alır. |
| LastSequenceNumber |
Türetilmiş bir sınıfta geçersiz kılındığında, günlük deposuna eklenecek sonraki kaydın sıra numarasını alır. |
| Length |
Günlük deposunun boyutunu bayt cinsinden alır. |
| Policy |
Bu günlük deposuyla ilişkili ilkeyi alır. |
| StreamCount |
Bu günlük deposundaki günlük akışlarının sayısını alır. |
Yöntemler
| Name | Description |
|---|---|
| CreateLogArchiveSnapshot() |
Yedekleme yapmak için günlük deposu durumunun anlık görüntüsünü alır. |
| CreateLogArchiveSnapshot(SequenceNumber, SequenceNumber) |
Yedekleme yapmak için belirtilen sıra numaraları arasında günlük deposu durumunun anlık görüntüsünü alır. |
| Delete(String) |
Günlük depoyu kaldırır. |
| Dispose() |
tarafından LogStorekullanılan tüm kaynakları serbest bırakır. |
| Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
| GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
| GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| SetArchiveTail(SequenceNumber) |
Arşiv kuyruğunun sıra numarasını ayarlar. |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |