LogStore Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mewakili penyimpanan terstruktur log.
public ref class LogStore sealed : IDisposable
public sealed class LogStore : IDisposable
type LogStore = class
interface IDisposable
Public NotInheritable Class LogStore
Implements IDisposable
- Warisan
-
LogStore
- Penerapan
Contoh
Contoh berikut menunjukkan cara mengarsipkan LogStore ke dokumen XML.
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
Keterangan
Kelas LogRecordSequence ini menyediakan implementasi antarmuka urutan rekaman di atas log Common Log File System (CLFS). Ini bekerja dengan LogStore kelas , yang menyediakan antarmuka untuk secara langsung memanipulasi dan mengelola file log CLFS. Penyimpanan log menyediakan penyimpanan khusus tambahan di sekumpulan tingkat disk. Kelas LogStore mewakili penyimpanan ini, dan menyediakan metode untuk menambahkan dan menghapus kontainer, mengatur kebijakan, dan membuat arsip. Ini tidak menyediakan metode untuk membaca dari dan menulis ke penyimpanan; metode ini disediakan oleh LogRecordSequence kelas .
Hubungan antara LogStore kelas dan LogRecordSequence kelas mirip dengan hubungan antara file disk dan FileStream objek. File disk menyediakan penyimpanan aktual dan memiliki atribut seperti panjang dan waktu akses terakhir, sementara FileStream objek menyediakan tampilan pada file yang dapat digunakan untuk membaca darinya dan menulisnya. Demikian pula, LogStore kelas ini memiliki atribut seperti kebijakan dan kumpulan jangkauan disk, dan LogRecordSequence kelas menyediakan mekanisme berorientasi rekaman untuk membaca dan menulis data.
Tidak seperti urutan rekaman file yang diwakili oleh FileRecordSequence kelas , LogStore instans menyimpan datanya dalam kumpulan jangkauan disk, yang diwakili oleh LogExtent instans. Jangkauan dalam instans tertentu LogStore adalah semua ukuran yang seragam, dan ruang ditambahkan ke dan dihapus dari LogStore instans dalam kenaikan sejauh mana. Untuk menambahkan dan menghapus jangkauan log, gunakan Add metode dan Remove objek LogExtentCollection , yang dapat dikembalikan oleh Extents properti .
Instans LogStore dapat memiliki kebijakan yang terkait dengannya. Ini diwakili oleh LogPolicy instans yang dapat dikembalikan oleh Policy properti . Kebijakan menentukan aturan yang akan dicoba diikuti log, seperti jumlah maksimum jangkauan dan ukuran minimum, dan instruksi tentang pertumbuhan atau penyusutan LogStore dalam kondisi tertentu. Selain itu, Anda dapat menentukan apakah LogStore instans dapat diarsipkan. Kebijakan diatur per log dan volatil, yang berarti bahwa setelah setiap handel ke log ditutup, kebijakan tidak lagi ada.
Konstruktor
LogStore(SafeFileHandle) |
Menginisialisasi instans LogStore baru kelas untuk handel yang ditentukan. |
LogStore(String, FileMode) |
Menginisialisasi instans LogStore baru kelas dengan jalur dan mode yang ditentukan. |
LogStore(String, FileMode, FileAccess) |
Menginisialisasi instans LogStore baru kelas dengan jalur, mode, dan akses yang ditentukan. |
LogStore(String, FileMode, FileAccess, FileShare) |
Menginisialisasi instans baru kelas LogStore. |
LogStore(String, FileMode, FileAccess, FileShare, FileSecurity) |
Menginisialisasi instans baru kelas LogStore. |
Properti
Archivable |
Mendapatkan nilai yang menunjukkan apakah instans ini LogStore dapat diarsipkan. |
BaseSequenceNumber |
Mendapatkan nomor urutan terendah yang sesuai dengan rekaman yang valid dalam instans ini LogStore . |
Extents |
Mendapatkan pengumpulan jangkauan log yang berisi data untuk penyimpanan log ini. |
FreeBytes |
Mendapatkan jumlah byte yang tersedia di penyimpanan log. |
Handle |
Mendapatkan handel file sistem operasi untuk file log yang dienkapsulasi instans saat ini LogStore . |
LastSequenceNumber |
Ketika ditimpa di kelas turunan, mendapatkan nomor urutan rekaman berikutnya untuk ditambahkan ke penyimpanan log. |
Length |
Mendapatkan ukuran penyimpanan log, dalam byte. |
Policy |
Mendapatkan kebijakan yang terkait dengan penyimpanan log ini. |
StreamCount |
Mendapatkan jumlah aliran log di penyimpanan log ini. |
Metode
CreateLogArchiveSnapshot() |
Mengambil rekam jepret status penyimpanan log untuk membuat cadangan. |
CreateLogArchiveSnapshot(SequenceNumber, SequenceNumber) |
Mengambil rekam jepret status penyimpanan log antara nomor urutan yang ditentukan untuk membuat cadangan. |
Delete(String) |
Menghapus penyimpanan log. |
Dispose() |
Merilis semua sumber daya yang LogStoredigunakan oleh . |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetType() |
Mendapatkan dari instans Type saat ini. (Diperoleh dari Object) |
MemberwiseClone() |
Membuat salinan dangkal dari saat ini Object. (Diperoleh dari Object) |
SetArchiveTail(SequenceNumber) |
Mengatur nomor urut ekor arsip. |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |