LogRecordSequence.Append Metodo

Definizione

Scrive un record di log in IRecordSequence.

Overload

Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)

Accoda un record di log a IRecordSequence utilizzando spazio precedentemente riservato nella sequenza. Questo metodo non può essere ereditato.

Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)

Accoda un record di log a IRecordSequence utilizzando 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)

Aggiunge un record di log a IRecordSequence. Questo metodo non può essere ereditato.

Esempio

In questo esempio viene illustrato come utilizzare il membro Append:

    // 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)

Accoda un record di log a IRecordSequence utilizzando 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 della 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 RecordAppendOptions che specifica la modalità da utilizzare per la scrittura dei dati.

reservations
ReservationCollection

Classe ReservationCollection contenente la prenotazione da utilizzare per questo record.

Restituisce

Numero di sequenza del record di registro accodato.

Implementazioni

Eccezioni

userRecord o previousRecord non è valido per questa sequenza.

-oppure-

Non è possibile aggiungere data perché le dimensioni superano le dimensioni massime dei record.

-oppure-

reservations non è stato creato da questa sequenza di record.

Uno o più argomenti sono null.

userRecord o previousRecord non è compreso tra i numeri di sequenza di base e finale di questa sequenza.

Impossibile eseguire la richiesta a causa di un'eccezione I/O imprevista.

-oppure-

Impossibile eseguire la richiesta a causa di un errore del dispositivo di I/O.

L'operazione non può essere eseguita perché la sequenza di record è stata aperta con accesso in sola lettura.

Il metodo è stato chiamato dopo l'eliminazione sequenza.

Memoria insufficiente per continuare l'esecuzione del programma.

Sequenza di record piena.

L'accesso per la sequenza dei log specificata viene negato dal sistema operativo.

Impossibile trovare una prenotazione abbastanza grande da soddisfare il parametro data in reservations.

Commenti

I dati contenuti nel parametro data verranno concatenati in una matrice a byte singolo per essere quindi accodati come record. Tuttavia, non esiste alcun provisioning per suddividere dati in segmenti della matrice una volta letto il record.

Il record accodato utilizzerà spazio precedentemente riservato, utilizzando una prenotazione specificata dal parametro reservations. Se l'accodamento riesce, utilizzerà la più piccola area della prenotazione che può contenere i dati e quell'area sarà rimossa dalla raccolta.

In genere questo metodo viene completato prima che il record sia stato scritto. Per garantire che un record è stato scritto, specificare il flag ForceFlush utilizzando il parametro recordAppendOptions oppure chiamare il metodo Flush.

Si applica a

Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)

Accoda un record di log a IRecordSequence utilizzando 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 della 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 RecordAppendOptions che specifica la modalità da utilizzare per la scrittura dei dati.

reservations
ReservationCollection

Classe ReservationCollection contenente la prenotazione da utilizzare per questo record.

Restituisce

Numero di sequenza del record di registro accodato.

Implementazioni

Eccezioni

userRecord o previousRecord non è valido per questa sequenza.

-oppure-

Non è possibile aggiungere data perché le dimensioni superano le dimensioni massime dei record.

-oppure-

reservations non è stato creato da questa sequenza di record.

Uno o più argomenti sono null.

userRecord o previousRecord non è compreso tra i numeri di sequenza di base e finale di questa sequenza.

Impossibile eseguire la richiesta a causa di un'eccezione I/O imprevista.

-oppure-

Impossibile eseguire la richiesta a causa di un errore del dispositivo di I/O.

L'operazione non può essere eseguita perché la sequenza di record è stata aperta con accesso in sola lettura.

Il metodo è stato chiamato dopo l'eliminazione sequenza.

Memoria insufficiente per continuare l'esecuzione del programma.

Sequenza di record piena.

L'accesso per la sequenza dei log specificata viene negato dal sistema operativo.

Impossibile trovare una prenotazione abbastanza grande da soddisfare il parametro data in reservations.

Commenti

I dati contenuti nel parametro data verranno concatenati in una matrice a byte singolo per essere quindi accodati come record. Tuttavia, non esiste alcun provisioning per suddividere dati in segmenti della matrice una volta letto il record.

Il record accodato utilizzerà spazio precedentemente riservato, utilizzando una prenotazione specificata dal parametro reservations. Se l'accodamento riesce, utilizzerà la più piccola area della prenotazione che può contenere i dati e quell'area sarà rimossa dalla raccolta.

In genere questo metodo viene completato prima che il record sia stato scritto. Per garantire che un record è stato scritto, specificare il flag ForceFlush utilizzando il parametro recordAppendOptions oppure chiamare il metodo Flush.

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 della 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 RecordAppendOptions che specifica la modalità da utilizzare per la scrittura dei dati.

Restituisce

Numero di sequenza del record di registro accodato.

Implementazioni

Eccezioni

userRecord o previousRecord non è valido per questa sequenza.

-oppure-

Non è possibile aggiungere data perché le dimensioni superano le dimensioni massime dei record.

-oppure-

reservations non è stato creato da questa sequenza di record.

Uno o più argomenti sono null.

userRecord o previousRecord non è compreso tra i numeri di sequenza di base e finale di questa sequenza.

Impossibile eseguire la richiesta a causa di un'eccezione I/O imprevista.

-oppure-

Impossibile eseguire la richiesta a causa di un errore del dispositivo di I/O.

L'operazione non può essere eseguita perché la sequenza di record è stata aperta con accesso in sola lettura.

Il metodo è stato chiamato dopo l'eliminazione sequenza.

Memoria insufficiente per continuare l'esecuzione del programma.

Sequenza di record piena.

L'accesso per la sequenza dei log specificata viene negato dal sistema operativo.

Esempio

Nell'esempio seguente viene dimostrato 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 parametro data verranno concatenati in una matrice a byte singolo per essere quindi accodati come record. Tuttavia, non esiste alcun provisioning per suddividere dati in segmenti della matrice una volta letto il record.

In genere questo metodo viene completato prima che il record sia stato scritto. Per garantire che un record è stato scritto, specificare il flag ForceFlush utilizzando il parametro recordAppendOptions oppure chiamare il metodo Flush.

Si applica a

Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions)

Aggiunge un record di log a 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 della 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 RecordAppendOptions che specifica la modalità da utilizzare per la scrittura dei dati.

Restituisce

Numero di sequenza del record di registro accodato.

Implementazioni

Eccezioni

userRecord o previousRecord non è valido per questa sequenza.

-oppure-

Non è possibile aggiungere data perché le dimensioni superano le dimensioni massime dei record.

-oppure-

reservations non è stato creato da questa sequenza di record.

Uno o più argomenti sono null.

userRecord o previousRecord non è compreso tra i numeri di sequenza di base e finale di questa sequenza.

Impossibile eseguire la richiesta a causa di un'eccezione I/O imprevista.

-oppure-

Impossibile eseguire la richiesta a causa di un errore del dispositivo di I/O.

L'operazione non può essere eseguita perché la sequenza di record è stata aperta con accesso in sola lettura.

Il metodo è stato chiamato dopo l'eliminazione sequenza.

Memoria insufficiente per continuare l'esecuzione del programma.

Sequenza di record piena.

L'accesso per la sequenza dei log specificata viene negato dal sistema operativo.

Commenti

I dati contenuti nel parametro data verranno concatenati in una matrice a byte singolo per essere quindi accodati come record. Tuttavia, non esiste alcun provisioning per suddividere dati in segmenti della matrice una volta letto il record.

In genere questo metodo viene completato prima che il record sia stato scritto. Per garantire che un record è stato scritto, specificare il flag ForceFlush utilizzando il parametro recordAppendOptions oppure chiamare il metodo Flush.

Si applica a