Compartir a través de


LogRecordSequence.Append Método

Definición

Escribe una entrada de registro en la IRecordSequence.

Sobrecargas

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

Anexa una entrada de registro a la IRecordSequence, utilizando el espacio previamente reservado en la secuencia. Este método no se puede heredar.

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

Anexa una entrada de registro a la IRecordSequence, utilizando el espacio previamente reservado en la secuencia. Este método no se puede heredar.

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

Escribe una entrada de registro en la LogRecordSequence. Este método no se puede heredar.

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

Anexa una entrada de registro a la IRecordSequence. Este método no se puede heredar.

Ejemplos

Este ejemplo muestra cómo utilizar el miembro 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)

Anexa una entrada de registro a la IRecordSequence, utilizando el espacio previamente reservado en la secuencia. Este método no se puede heredar.

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

Parámetros

data
ArraySegment<Byte>

Una lista de segmentos de la matriz de bytes que se concatenarán y anexarán como el registro.

nextUndoRecord
SequenceNumber

El número de secuencia del registro siguiente en el orden especificado por el usuario.

previousRecord
SequenceNumber

El número de secuencia del registro siguiente en orden anterior.

recordAppendOptions
RecordAppendOptions

Un valor válido de RecordAppendOptions que especifica cómo se deberían escribir los datos.

reservations
ReservationCollection

Una ReservationCollection que contiene la reserva que se debería utilizar para este registro.

Devoluciones

Número de secuencia del registro de entrada anexado.

Implementaciones

Excepciones

userRecord o previousRecord no es válido para esta secuencia.

o bien

No se pueden anexar data porque es mayor que el tamaño de registro máximo.

o bien

Esta secuencia del registro no creó reservations.

Uno o varios argumentos tienen el valor null.

El valor de userRecord o de previousRecord no está entre los números de secuencia base y último de esta secuencia.

La solicitud no se pudo realizar debido a una excepción de E/S inesperada.

o bien

La solicitud no se pudo realizar debido a un error de dispositivo de E/S.

La operación no se puede realizar porque la secuencia del registro se abrió con acceso de solo lectura.

Se llamó al método una vez eliminada la secuencia.

No hay bastante memoria para continuar la ejecución del programa.

La secuencia del registro está completa.

El sistema operativo ha denegado el acceso a la secuencia de registro especificado.

No se puede encontrar en data ninguna reserva lo suficientemente grande para ajustar reservations.

Comentarios

Los datos contenidos en el parámetro data se concatenarán en una matriz de bytes única para anexarlos como el registro. Sin embargo, no se ha realizado ninguna disposición para dividir los datode nuevo en los segmentos de la matriz cuando se lee el registro.

El registro anexado utilizará el espacio que se ha reservado previamente, utilizando una reserva especificada por el parámetro reservations. Si el anexado tiene éxito, utilizará el área de reserva menor posible que pueda contener los datos y esa área de reserva se quitará de la colección.

Normalmente, este método se completa antes de que se haya escrito el registro. Para asegurarse de que se ha escrito un registro, especifique la marca ForceFlush utilizando el parámetro recordAppendOptions o llame al método Flush.

Se aplica a

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

Anexa una entrada de registro a la IRecordSequence, utilizando el espacio previamente reservado en la secuencia. Este método no se puede heredar.

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

Parámetros

data
IList<ArraySegment<Byte>>

Una lista de segmentos de la matriz de bytes que se concatenarán y anexarán como el registro.

userRecord
SequenceNumber

El número de secuencia del registro siguiente en el orden especificado por el usuario.

previousRecord
SequenceNumber

El número de secuencia del registro siguiente en orden anterior.

recordAppendOptions
RecordAppendOptions

Un valor válido de RecordAppendOptions que especifica cómo se deberían escribir los datos.

reservations
ReservationCollection

Una ReservationCollection que contiene la reserva que se debería utilizar para este registro.

Devoluciones

Número de secuencia del registro de entrada anexado.

Implementaciones

Excepciones

userRecord o previousRecord no es válido para esta secuencia.

o bien

No se pueden anexar data porque es mayor que el tamaño de registro máximo.

o bien

Esta secuencia del registro no creó reservations.

Uno o varios argumentos tienen el valor null.

El valor de userRecord o de previousRecord no está entre los números de secuencia base y último de esta secuencia.

La solicitud no se pudo realizar debido a una excepción de E/S inesperada.

o bien

La solicitud no se pudo realizar debido a un error de dispositivo de E/S.

La operación no se puede realizar porque la secuencia del registro se abrió con acceso de solo lectura.

Se llamó al método una vez eliminada la secuencia.

No hay bastante memoria para continuar la ejecución del programa.

La secuencia del registro está completa.

El sistema operativo ha denegado el acceso a la secuencia de registro especificado.

No se puede encontrar en data ninguna reserva lo suficientemente grande para ajustar reservations.

Comentarios

Los datos contenidos en el parámetro data se concatenarán en una matriz de bytes única para anexarlos como el registro. Sin embargo, no se ha realizado ninguna disposición para dividir los datode nuevo en los segmentos de la matriz cuando se lee el registro.

El registro anexado utilizará el espacio que se ha reservado previamente, utilizando una reserva especificada por el parámetro reservations. Si el anexado tiene éxito, utilizará el área de reserva menor posible que pueda contener los datos y esa área de reserva se quitará de la colección.

Normalmente, este método se completa antes de que se haya escrito el registro. Para asegurarse de que se ha escrito un registro, especifique la marca ForceFlush utilizando el parámetro recordAppendOptions o llame al método Flush.

Se aplica a

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

Escribe una entrada de registro en la LogRecordSequence. Este método no se puede heredar.

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

Parámetros

data
ArraySegment<Byte>

Una lista de segmentos de la matriz de bytes que se concatenarán y anexarán como el registro.

nextUndoRecord
SequenceNumber

El número de secuencia del registro siguiente en el orden especificado por el usuario.

previousRecord
SequenceNumber

El número de secuencia del registro siguiente en orden anterior.

recordAppendOptions
RecordAppendOptions

Un valor válido de RecordAppendOptions que especifica cómo se deberían escribir los datos.

Devoluciones

Número de secuencia del registro de entrada anexado.

Implementaciones

Excepciones

userRecord o previousRecord no es válido para esta secuencia.

o bien

No se pueden anexar data porque es mayor que el tamaño de registro máximo.

o bien

Esta secuencia del registro no creó reservations.

Uno o varios argumentos tienen el valor null.

El valor de userRecord o de previousRecord no está entre los números de secuencia base y último de esta secuencia.

La solicitud no se pudo realizar debido a una excepción de E/S inesperada.

o bien

La solicitud no se pudo realizar debido a un error de dispositivo de E/S.

La operación no se puede realizar porque la secuencia del registro se abrió con acceso de solo lectura.

Se llamó al método una vez eliminada la secuencia.

No hay bastante memoria para continuar la ejecución del programa.

La secuencia del registro está completa.

El sistema operativo ha denegado el acceso a la secuencia de registro especificado.

Ejemplos

El siguiente ejemplo muestra cómo utilizar este método para anexar una entrada de registro a la secuencia.

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

Comentarios

Los datos contenidos en el parámetro data se concatenarán en una matriz de bytes única para anexarlos como el registro. Sin embargo, no se ha realizado ninguna disposición para dividir los datode nuevo en los segmentos de la matriz cuando se lee el registro.

Normalmente, este método se completa antes de que se haya escrito el registro. Para asegurarse de que se ha escrito un registro, especifique la marca ForceFlush utilizando el parámetro recordAppendOptions o llame al método Flush.

Se aplica a

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

Anexa una entrada de registro a la IRecordSequence. Este método no se puede heredar.

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

Parámetros

data
IList<ArraySegment<Byte>>

Una lista de segmentos de la matriz de bytes que se concatenarán y anexarán como el registro.

userRecord
SequenceNumber

El número de secuencia del registro siguiente en el orden especificado por el usuario.

previousRecord
SequenceNumber

El número de secuencia del registro siguiente en orden anterior.

recordAppendOptions
RecordAppendOptions

Un valor válido de RecordAppendOptions que especifica cómo se deberían escribir los datos.

Devoluciones

Número de secuencia del registro de entrada anexado.

Implementaciones

Excepciones

userRecord o previousRecord no es válido para esta secuencia.

o bien

No se pueden anexar data porque es mayor que el tamaño de registro máximo.

o bien

Esta secuencia del registro no creó reservations.

Uno o varios argumentos tienen el valor null.

El valor de userRecord o de previousRecord no está entre los números de secuencia base y último de esta secuencia.

La solicitud no se pudo realizar debido a una excepción de E/S inesperada.

o bien

La solicitud no se pudo realizar debido a un error de dispositivo de E/S.

La operación no se puede realizar porque la secuencia del registro se abrió con acceso de solo lectura.

Se llamó al método una vez eliminada la secuencia.

No hay bastante memoria para continuar la ejecución del programa.

La secuencia del registro está completa.

El sistema operativo ha denegado el acceso a la secuencia de registro especificado.

Comentarios

Los datos contenidos en el parámetro data se concatenarán en una matriz de bytes única para anexarlos como el registro. Sin embargo, no se ha realizado ninguna disposición para dividir los datode nuevo en los segmentos de la matriz cuando se lee el registro.

Normalmente, este método se completa antes de que se haya escrito el registro. Para asegurarse de que se ha escrito un registro, especifique la marca ForceFlush utilizando el parámetro recordAppendOptions o llame al método Flush.

Se aplica a