LogRecordSequence.Append Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Scrive un record di log in IRecordSequence.
Overload
| Nome | Descrizione |
|---|---|
| Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection) |
Aggiunge un record di log a IRecordSequence, usando lo spazio precedentemente riservato nella sequenza. Questo metodo non può essere ereditato. |
| Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection) |
Aggiunge un record di log a IRecordSequence, usando lo spazio precedentemente riservato nella sequenza. Questo metodo non può essere ereditato. |
| Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions) |
Scrive un record di log in LogRecordSequence. Questo metodo non può essere ereditato. |
| Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions) |
Accoda un record di log all'oggetto IRecordSequence. Questo metodo non può essere ereditato. |
Esempio
In questo esempio viene illustrato come usare il Append membro
// 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)
Aggiunge un record di log a IRecordSequence, usando lo spazio precedentemente riservato nella sequenza. Questo metodo non può essere ereditato.
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
Parametri
- data
- ArraySegment<Byte>
Elenco di segmenti di matrice di byte che verranno concatenati e accodati come record.
- nextUndoRecord
- SequenceNumber
Numero di sequenza del record successivo nell'ordine specificato dall'utente.
- previousRecord
- SequenceNumber
Numero di sequenza del record successivo nell'ordine precedente.
- recordAppendOptions
- RecordAppendOptions
Valore valido di che specifica la modalità di RecordAppendOptions scrittura dei dati.
- reservations
- ReservationCollection
Oggetto ReservationCollection contenente la prenotazione che deve essere utilizzata per questo record.
Valori restituiti
Numero di sequenza del record di log accodato.
Implementazioni
Eccezioni
userRecord o previousRecord non è valido per questa sequenza.
oppure
data non può essere aggiunto perché è maggiore della dimensione massima del record.
oppure
reservations non è stato creato da questa sequenza di record.
Uno o più argomenti sono null.
userRecord o previousRecord non è compreso tra il numero di base e l'ultimo numero di sequenza di questa sequenza.
Impossibile eseguire la richiesta a causa di un'eccezione di I/O imprevista.
oppure
Impossibile eseguire la richiesta a causa di un errore del dispositivo di I/O.
Impossibile eseguire l'operazione perché la sequenza di record è stata aperta con accesso di sola lettura.
Il metodo è stato chiamato dopo che la sequenza è stata eliminata.
Memoria insufficiente per continuare l'esecuzione del programma.
La sequenza di record è piena.
L'accesso per la sequenza di log specificata viene negato dal sistema operativo.
Nessuna prenotazione abbastanza grande da adattarsi data è disponibile in reservations.
Commenti
I dati contenuti nel data parametro verranno concatenati in una singola matrice di byte per l'aggiunta come record. Tuttavia, non viene effettuato alcun provisioning per la suddivisione dei dati in segmenti di matrice quando il record viene letto.
Il record accodato utilizzerà lo spazio precedentemente riservato, usando una prenotazione specificata dal reservations parametro . Se l'accodamento ha esito positivo, utilizzerà l'area di prenotazione più piccola che può contenere i dati e tale area di prenotazione verrà rimossa dalla raccolta.
In genere, questo metodo viene completato prima della scrittura del record. Per assicurarsi che sia stato scritto un record, specificare il ForceFlush flag usando il recordAppendOptions parametro o chiamare il Flush metodo .
Si applica a
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)
Aggiunge un record di log a IRecordSequence, usando lo spazio precedentemente riservato nella sequenza. Questo metodo non può essere ereditato.
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
Parametri
- data
- IList<ArraySegment<Byte>>
Elenco di segmenti di matrice di byte che verranno concatenati e accodati come record.
- userRecord
- SequenceNumber
Numero di sequenza del record successivo nell'ordine specificato dall'utente.
- previousRecord
- SequenceNumber
Numero di sequenza del record successivo nell'ordine precedente.
- recordAppendOptions
- RecordAppendOptions
Valore valido di che specifica la modalità di RecordAppendOptions scrittura dei dati.
- reservations
- ReservationCollection
Oggetto ReservationCollection contenente la prenotazione che deve essere utilizzata per questo record.
Valori restituiti
Numero di sequenza del record di log accodato.
Implementazioni
Eccezioni
userRecord o previousRecord non è valido per questa sequenza.
oppure
data non può essere aggiunto perché è maggiore della dimensione massima del record.
oppure
reservations non è stato creato da questa sequenza di record.
Uno o più argomenti sono null.
userRecord o previousRecord non è compreso tra il numero di base e l'ultimo numero di sequenza di questa sequenza.
Impossibile eseguire la richiesta a causa di un'eccezione di I/O imprevista.
oppure
Impossibile eseguire la richiesta a causa di un errore del dispositivo di I/O.
Impossibile eseguire l'operazione perché la sequenza di record è stata aperta con accesso di sola lettura.
Il metodo è stato chiamato dopo che la sequenza è stata eliminata.
Memoria insufficiente per continuare l'esecuzione del programma.
La sequenza di record è piena.
L'accesso per la sequenza di log specificata viene negato dal sistema operativo.
Nessuna prenotazione abbastanza grande da adattarsi data è disponibile in reservations.
Commenti
I dati contenuti nel data parametro verranno concatenati in una singola matrice di byte per l'aggiunta come record. Tuttavia, non viene effettuato alcun provisioning per la suddivisione dei dati in segmenti di matrice quando il record viene letto.
Il record accodato utilizzerà lo spazio precedentemente riservato, usando una prenotazione specificata dal reservations parametro . Se l'accodamento ha esito positivo, utilizzerà l'area di prenotazione più piccola che può contenere i dati e tale area di prenotazione verrà rimossa dalla raccolta.
In genere, questo metodo viene completato prima della scrittura del record. Per assicurarsi che sia stato scritto un record, specificare il ForceFlush flag usando il recordAppendOptions parametro o chiamare il Flush metodo .
Si applica a
Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions)
Scrive un record di log in LogRecordSequence. Questo metodo non può essere ereditato.
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
Parametri
- data
- ArraySegment<Byte>
Elenco di segmenti di matrice di byte che verranno concatenati e accodati come record.
- nextUndoRecord
- SequenceNumber
Numero di sequenza del record successivo nell'ordine specificato dall'utente.
- previousRecord
- SequenceNumber
Numero di sequenza del record successivo nell'ordine precedente.
- recordAppendOptions
- RecordAppendOptions
Valore valido di che specifica la modalità di RecordAppendOptions scrittura dei dati.
Valori restituiti
Numero di sequenza del record di log accodato.
Implementazioni
Eccezioni
userRecord o previousRecord non è valido per questa sequenza.
oppure
data non può essere aggiunto perché è maggiore della dimensione massima del record.
oppure
reservations non è stato creato da questa sequenza di record.
Uno o più argomenti sono null.
userRecord o previousRecord non è compreso tra il numero di base e l'ultimo numero di sequenza di questa sequenza.
Impossibile eseguire la richiesta a causa di un'eccezione di I/O imprevista.
oppure
Impossibile eseguire la richiesta a causa di un errore del dispositivo di I/O.
Impossibile eseguire l'operazione perché la sequenza di record è stata aperta con accesso di sola lettura.
Il metodo è stato chiamato dopo che la sequenza è stata eliminata.
Memoria insufficiente per continuare l'esecuzione del programma.
La sequenza di record è piena.
L'accesso per la sequenza di log specificata viene negato dal sistema operativo.
Esempio
Nell'esempio seguente viene illustrato come utilizzare questo metodo per aggiungere un record di log alla sequenza.
// 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)
Commenti
I dati contenuti nel data parametro verranno concatenati in una singola matrice di byte per l'aggiunta come record. Tuttavia, non viene effettuato alcun provisioning per la suddivisione dei dati in segmenti di matrice quando il record viene letto.
In genere, questo metodo viene completato prima della scrittura del record. Per assicurarsi che sia stato scritto un record, specificare il ForceFlush flag usando il recordAppendOptions parametro o chiamare il Flush metodo .
Si applica a
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions)
Accoda un record di log all'oggetto IRecordSequence. Questo metodo non può essere ereditato.
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
Parametri
- data
- IList<ArraySegment<Byte>>
Elenco di segmenti di matrice di byte che verranno concatenati e accodati come record.
- userRecord
- SequenceNumber
Numero di sequenza del record successivo nell'ordine specificato dall'utente.
- previousRecord
- SequenceNumber
Numero di sequenza del record successivo nell'ordine precedente.
- recordAppendOptions
- RecordAppendOptions
Valore valido di che specifica la modalità di RecordAppendOptions scrittura dei dati.
Valori restituiti
Numero di sequenza del record di log accodato.
Implementazioni
Eccezioni
userRecord o previousRecord non è valido per questa sequenza.
oppure
data non può essere aggiunto perché è maggiore della dimensione massima del record.
oppure
reservations non è stato creato da questa sequenza di record.
Uno o più argomenti sono null.
userRecord o previousRecord non è compreso tra il numero di base e l'ultimo numero di sequenza di questa sequenza.
Impossibile eseguire la richiesta a causa di un'eccezione di I/O imprevista.
oppure
Impossibile eseguire la richiesta a causa di un errore del dispositivo di I/O.
Impossibile eseguire l'operazione perché la sequenza di record è stata aperta con accesso di sola lettura.
Il metodo è stato chiamato dopo che la sequenza è stata eliminata.
Memoria insufficiente per continuare l'esecuzione del programma.
La sequenza di record è piena.
L'accesso per la sequenza di log specificata viene negato dal sistema operativo.
Commenti
I dati contenuti nel data parametro verranno concatenati in una singola matrice di byte per l'aggiunta come record. Tuttavia, non viene effettuato alcun provisioning per la suddivisione dei dati in segmenti di matrice quando il record viene letto.
In genere, questo metodo viene completato prima della scrittura del record. Per assicurarsi che sia stato scritto un record, specificare il ForceFlush flag usando il recordAppendOptions parametro o chiamare il Flush metodo .