LogRecordSequence.Append Metode
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.
Menulis catatan log ke IRecordSequence.
Overload
Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection) |
Menambahkan rekaman log ke IRecordSequence, menggunakan ruang yang sebelumnya dipesan dalam urutan. Metode ini tidak dapat diwariskan. |
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection) |
Menambahkan rekaman log ke IRecordSequence, menggunakan ruang yang sebelumnya dipesan dalam urutan. Metode ini tidak dapat diwariskan. |
Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions) |
Menulis catatan log ke LogRecordSequence. Metode ini tidak dapat diwariskan. |
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions) |
Menambahkan catatan log ke IRecordSequence. Metode ini tidak dapat diwariskan. |
Contoh
Contoh ini menunjukkan cara menggunakan Append anggota
// Append records. Appending three records.
public void AppendRecords()
{
Console.WriteLine("Appending Log Records...");
SequenceNumber previous = SequenceNumber.Invalid;
previous = sequence.Append(CreateData("Hello World!"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush);
previous = sequence.Append(CreateData("This is my first Logging App"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush);
previous = sequence.Append(CreateData("Using LogRecordSequence..."), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush);
Console.WriteLine("Done...");
}
' Append records. Appending three records.
Public Sub AppendRecords()
Console.WriteLine("Appending Log Records...")
Dim previous As SequenceNumber = SequenceNumber.Invalid
previous = sequence.Append(CreateData("Hello World!"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)
previous = sequence.Append(CreateData("This is my first Logging App"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)
previous = sequence.Append(CreateData("Using LogRecordSequence..."), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)
Console.WriteLine("Done...")
End Sub
Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)
Menambahkan rekaman log ke IRecordSequence, menggunakan ruang yang sebelumnya dipesan dalam urutan. Metode ini tidak dapat diwariskan.
public:
virtual System::IO::Log::SequenceNumber Append(ArraySegment<System::Byte> data, System::IO::Log::SequenceNumber nextUndoRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservations);
public System.IO.Log.SequenceNumber Append (ArraySegment<byte> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservations);
abstract member Append : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection -> System.IO.Log.SequenceNumber
override this.Append : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection -> System.IO.Log.SequenceNumber
Public Function Append (data As ArraySegment(Of Byte), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservations As ReservationCollection) As SequenceNumber
Parameter
- data
- ArraySegment<Byte>
Daftar segmen array byte yang akan digabungkan dan ditambahkan sebagai rekaman.
- nextUndoRecord
- SequenceNumber
Nomor urut rekaman berikutnya dalam urutan yang ditentukan pengguna.
- previousRecord
- SequenceNumber
Nomor urut rekaman berikutnya dalam Urutan sebelumnya.
- recordAppendOptions
- RecordAppendOptions
Nilai RecordAppendOptions valid yang menentukan bagaimana data harus ditulis.
- reservations
- ReservationCollection
ReservationCollection yang berisi reservasi yang harus digunakan untuk catatan ini.
Mengembalikan
Nomor urut rekaman log yang ditambahkan.
Penerapan
Pengecualian
userRecord
atau previousRecord
tidak valid untuk urutan ini.
-atau-
data
tidak dapat ditambahkan karena lebih besar dari ukuran rekaman maksimum.
-atau-
reservations
tidak dibuat oleh urutan rekaman ini.
Satu atau beberapa argumen adalah null
.
userRecord
atau previousRecord
bukan antara nomor urutan dasar dan urutan terakhir dari urutan ini.
Permintaan tidak dapat dilakukan karena pengecualian I/O yang tidak terduga.
-atau-
Permintaan tidak dapat dilakukan karena kesalahan perangkat I/O.
Operasi tidak dapat dilakukan karena urutan rekaman dibuka dengan akses baca-saja.
Metode ini dipanggil setelah urutan dibuang.
Memori tidak cukup untuk melanjutkan eksekusi program.
Urutan rekaman penuh.
Akses untuk urutan log yang ditentukan ditolak oleh sistem operasi.
Tidak ada reservasi yang cukup besar agar pas data
dapat ditemukan di reservations
.
Keterangan
Data yang terkandung dalam data
parameter akan digabungkan ke dalam array byte tunggal untuk ditambahkan sebagai rekaman. Namun, tidak ada ketentuan yang dibuat untuk memisahkan data kembali ke segmen array saat rekaman dibaca.
Catatan yang ditambahkan akan menggunakan ruang yang sebelumnya telah dipesan, menggunakan reservasi yang ditentukan oleh reservations
parameter . Jika penambah berhasil, itu akan mengonsumsi area reservasi terkecil yang dapat menyimpan data, dan area reservasi tersebut akan dihapus dari pengumpulan.
Biasanya, metode ini selesai sebelum rekaman ditulis. Untuk memastikan bahwa rekaman telah ditulis, tentukan ForceFlush bendera menggunakan recordAppendOptions
parameter , atau panggil Flush metode .
Berlaku untuk
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)
Menambahkan rekaman log ke IRecordSequence, menggunakan ruang yang sebelumnya dipesan dalam urutan. Metode ini tidak dapat diwariskan.
public:
virtual System::IO::Log::SequenceNumber Append(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber userRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservations);
public System.IO.Log.SequenceNumber Append (System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber userRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservations);
abstract member Append : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection -> System.IO.Log.SequenceNumber
override this.Append : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection -> System.IO.Log.SequenceNumber
Public Function Append (data As IList(Of ArraySegment(Of Byte)), userRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservations As ReservationCollection) As SequenceNumber
Parameter
- data
- IList<ArraySegment<Byte>>
Daftar segmen array byte yang akan digabungkan dan ditambahkan sebagai rekaman.
- userRecord
- SequenceNumber
Nomor urut rekaman berikutnya dalam urutan yang ditentukan pengguna.
- previousRecord
- SequenceNumber
Nomor urut rekaman berikutnya dalam Urutan sebelumnya.
- recordAppendOptions
- RecordAppendOptions
Nilai RecordAppendOptions valid yang menentukan bagaimana data harus ditulis.
- reservations
- ReservationCollection
ReservationCollection yang berisi reservasi yang harus digunakan untuk catatan ini.
Mengembalikan
Nomor urut rekaman log yang ditambahkan.
Penerapan
Pengecualian
userRecord
atau previousRecord
tidak valid untuk urutan ini.
-atau-
data
tidak dapat ditambahkan karena lebih besar dari ukuran rekaman maksimum.
-atau-
reservations
tidak dibuat oleh urutan rekaman ini.
Satu atau beberapa argumen adalah null
.
userRecord
atau previousRecord
bukan antara nomor urutan dasar dan urutan terakhir dari urutan ini.
Permintaan tidak dapat dilakukan karena pengecualian I/O yang tidak terduga.
-atau-
Permintaan tidak dapat dilakukan karena kesalahan perangkat I/O.
Operasi tidak dapat dilakukan karena urutan rekaman dibuka dengan akses baca-saja.
Metode ini dipanggil setelah urutan dibuang.
Memori tidak cukup untuk melanjutkan eksekusi program.
Urutan rekaman penuh.
Akses untuk urutan log yang ditentukan ditolak oleh sistem operasi.
Tidak ada reservasi yang cukup besar agar pas data
dapat ditemukan di reservations
.
Keterangan
Data yang terkandung dalam data
parameter akan digabungkan ke dalam array byte tunggal untuk ditambahkan sebagai rekaman. Namun, tidak ada ketentuan yang dibuat untuk memisahkan data kembali ke segmen array saat rekaman dibaca.
Catatan yang ditambahkan akan menggunakan ruang yang sebelumnya telah dipesan, menggunakan reservasi yang ditentukan oleh reservations
parameter . Jika penambah berhasil, itu akan mengonsumsi area reservasi terkecil yang dapat menyimpan data, dan area reservasi tersebut akan dihapus dari pengumpulan.
Biasanya, metode ini selesai sebelum rekaman ditulis. Untuk memastikan bahwa rekaman telah ditulis, tentukan ForceFlush bendera menggunakan recordAppendOptions
parameter , atau panggil Flush metode .
Berlaku untuk
Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions)
Menulis catatan log ke LogRecordSequence. Metode ini tidak dapat diwariskan.
public:
virtual System::IO::Log::SequenceNumber Append(ArraySegment<System::Byte> data, System::IO::Log::SequenceNumber nextUndoRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions);
public System.IO.Log.SequenceNumber Append (ArraySegment<byte> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions);
abstract member Append : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions -> System.IO.Log.SequenceNumber
override this.Append : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions -> System.IO.Log.SequenceNumber
Public Function Append (data As ArraySegment(Of Byte), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions) As SequenceNumber
Parameter
- data
- ArraySegment<Byte>
Daftar segmen array byte yang akan digabungkan dan ditambahkan sebagai rekaman.
- nextUndoRecord
- SequenceNumber
Nomor urut rekaman berikutnya dalam urutan yang ditentukan pengguna.
- previousRecord
- SequenceNumber
Nomor urut rekaman berikutnya dalam Urutan sebelumnya.
- recordAppendOptions
- RecordAppendOptions
Nilai RecordAppendOptions valid yang menentukan bagaimana data harus ditulis.
Mengembalikan
Nomor urut rekaman log yang ditambahkan.
Penerapan
Pengecualian
userRecord
atau previousRecord
tidak valid untuk urutan ini.
-atau-
data
tidak dapat ditambahkan karena lebih besar dari ukuran rekaman maksimum.
-atau-
reservations
tidak dibuat oleh urutan rekaman ini.
Satu atau beberapa argumen adalah null
.
userRecord
atau previousRecord
bukan antara nomor urutan dasar dan urutan terakhir dari urutan ini.
Permintaan tidak dapat dilakukan karena pengecualian I/O yang tidak terduga.
-atau-
Permintaan tidak dapat dilakukan karena kesalahan perangkat I/O.
Operasi tidak dapat dilakukan karena urutan rekaman dibuka dengan akses baca-saja.
Metode ini dipanggil setelah urutan dibuang.
Memori tidak cukup untuk melanjutkan eksekusi program.
Urutan rekaman penuh.
Akses untuk urutan log yang ditentukan ditolak oleh sistem operasi.
Contoh
Contoh berikut menunjukkan cara menggunakan metode ini untuk menambahkan rekaman log ke urutan.
// Start Appending in two streams with interleaving appends.
SequenceNumber previous1 = SequenceNumber.Invalid;
SequenceNumber previous2 = SequenceNumber.Invalid;
Console.WriteLine("Appending interleaving records in stream1 and stream2...");
Console.WriteLine();
// Append two records in stream1.
previous1 = sequence1.Append(
CreateData("MyLogStream1: Hello World!"),
SequenceNumber.Invalid,
SequenceNumber.Invalid,
RecordAppendOptions.ForceFlush);
previous1 = sequence1.Append(
CreateData("MyLogStream1: This is my first Logging App"),
previous1,
previous1,
RecordAppendOptions.ForceFlush);
// Append two records in stream2.
previous2 = sequence2.Append(
CreateData("MyLogStream2: Hello World!"),
SequenceNumber.Invalid,
SequenceNumber.Invalid,
RecordAppendOptions.ForceFlush);
previous2 = sequence2.Append(
CreateData("MyLogStream2: This is my first Logging App"),
previous2,
previous2,
RecordAppendOptions.ForceFlush);
// Append the third record in stream1.
previous1 = sequence1.Append(CreateData(
"MyLogStream1: Using LogRecordSequence..."),
previous1,
previous1,
RecordAppendOptions.ForceFlush);
// Append the third record in stream2.
previous2 = sequence2.Append(
CreateData("MyLogStream2: Using LogRecordSequence..."),
previous2,
previous2,
RecordAppendOptions.ForceFlush);
' Start Appending in two streams with interleaving appends.
Dim previous1 As SequenceNumber = SequenceNumber.Invalid
Dim previous2 As SequenceNumber = SequenceNumber.Invalid
Console.WriteLine("Appending interleaving records in stream1 and stream2...")
Console.WriteLine()
' Append two records in stream1.
previous1 = sequence1.Append(CreateData("MyLogStream1: Hello World!"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)
previous1 = sequence1.Append(CreateData("MyLogStream1: This is my first Logging App"), previous1, previous1, RecordAppendOptions.ForceFlush)
' Append two records in stream2.
previous2 = sequence2.Append(CreateData("MyLogStream2: Hello World!"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)
previous2 = sequence2.Append(CreateData("MyLogStream2: This is my first Logging App"), previous2, previous2, RecordAppendOptions.ForceFlush)
' Append the third record in stream1.
previous1 = sequence1.Append(CreateData("MyLogStream1: Using LogRecordSequence..."), previous1, previous1, RecordAppendOptions.ForceFlush)
' Append the third record in stream2.
previous2 = sequence2.Append(CreateData("MyLogStream2: Using LogRecordSequence..."), previous2, previous2, RecordAppendOptions.ForceFlush)
Keterangan
Data yang terkandung dalam data
parameter akan digabungkan ke dalam array byte tunggal untuk ditambahkan sebagai rekaman. Namun, tidak ada ketentuan yang dibuat untuk memisahkan data kembali ke segmen array saat rekaman dibaca.
Biasanya, metode ini selesai sebelum rekaman ditulis. Untuk memastikan bahwa rekaman telah ditulis, tentukan ForceFlush bendera menggunakan recordAppendOptions
parameter , atau panggil Flush metode .
Berlaku untuk
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions)
Menambahkan catatan log ke IRecordSequence. Metode ini tidak dapat diwariskan.
public:
virtual System::IO::Log::SequenceNumber Append(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber userRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions);
public System.IO.Log.SequenceNumber Append (System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber userRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions);
abstract member Append : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions -> System.IO.Log.SequenceNumber
override this.Append : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions -> System.IO.Log.SequenceNumber
Public Function Append (data As IList(Of ArraySegment(Of Byte)), userRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions) As SequenceNumber
Parameter
- data
- IList<ArraySegment<Byte>>
Daftar segmen array byte yang akan digabungkan dan ditambahkan sebagai rekaman.
- userRecord
- SequenceNumber
Nomor urut rekaman berikutnya dalam urutan yang ditentukan pengguna.
- previousRecord
- SequenceNumber
Nomor urut rekaman berikutnya dalam Urutan sebelumnya.
- recordAppendOptions
- RecordAppendOptions
Nilai RecordAppendOptions valid yang menentukan bagaimana data harus ditulis.
Mengembalikan
Nomor urut rekaman log yang ditambahkan.
Penerapan
Pengecualian
userRecord
atau previousRecord
tidak valid untuk urutan ini.
-atau-
data
tidak dapat ditambahkan karena lebih besar dari ukuran rekaman maksimum.
-atau-
reservations
tidak dibuat oleh urutan rekaman ini.
Satu atau beberapa argumen adalah null
.
userRecord
atau previousRecord
bukan antara nomor urutan dasar dan terakhir dari urutan ini.
Permintaan tidak dapat dilakukan karena pengecualian I/O yang tidak terduga.
-atau-
Permintaan tidak dapat dilakukan karena kesalahan perangkat I/O.
Operasi tidak dapat dilakukan karena urutan rekaman dibuka dengan akses baca-saja.
Metode ini dipanggil setelah urutan dibuang.
Memori tidak cukup untuk melanjutkan eksekusi program.
Urutan rekaman penuh.
Akses untuk urutan log yang ditentukan ditolak oleh sistem operasi.
Keterangan
Data yang terkandung dalam data
parameter akan digabungkan ke dalam array byte tunggal untuk ditambahkan sebagai rekaman. Namun, tidak ada ketentuan yang dibuat untuk memisahkan data kembali ke segmen array saat rekaman dibaca.
Biasanya, metode ini selesai sebelum rekaman ditulis. Untuk memastikan bahwa rekaman telah ditulis, tentukan ForceFlush bendera menggunakan recordAppendOptions
parameter , atau panggil Flush metode .