LogRecordSequence.Append Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.