LogRecordSequence.Append Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Grava um registro de log para o IRecordSequence.
Sobrecargas
Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection) |
Acrescenta um registro de log ao IRecordSequence, usando o espaço reservado anteriormente na sequência. Esse método não pode ser herdado. |
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection) |
Acrescenta um registro de log ao IRecordSequence, usando o espaço reservado anteriormente na sequência. Esse método não pode ser herdado. |
Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions) |
Grava um registro de log para o LogRecordSequence. Esse método não pode ser herdado. |
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions) |
Acrescenta um registro de log ao IRecordSequence. Esse método não pode ser herdado. |
Exemplos
Este exemplo mostra como usar o 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)
Acrescenta um registro de log ao IRecordSequence, usando o espaço reservado anteriormente na sequência. Esse método não pode ser herdado.
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>
Uma lista de segmentos de matriz de bytes que serão concatenados e acrescentados como o registro.
- nextUndoRecord
- SequenceNumber
O número de sequência do próximo registro na ordem especificada pelo usuário.
- previousRecord
- SequenceNumber
O número de sequência do próximo registro na ordem Anterior.
- recordAppendOptions
- RecordAppendOptions
Um valor válido de RecordAppendOptions que especifica como os dados devem ser gravados.
- reservations
- ReservationCollection
Um ReservationCollection que contém a reserva que deve ser usada para este registro.
Retornos
O número de sequência do registro de log acrescentado.
Implementações
Exceções
userRecord
ou previousRecord
não é válido para essa sequência.
- ou -
data
não pode ser anexado porque é maior que o tamanho máximo do registro.
- ou -
reservations
não foi criado por essa sequência de registro.
Um ou mais argumentos são null
.
userRecord
ou previousRecord
não está entre os números de base e de última sequência dessa sequência.
A solicitação não pôde ser executada devido a uma exceção de E/S inesperada.
- ou -
Não foi possível executar a solicitação devido a um erro de dispositivo de E/S.
Não é possível executar a operação porque a sequência de registros foi aberta com acesso somente leitura.
O método foi chamado depois que a sequência foi descartada.
Não há memória suficiente para continuar a execução do programa.
A sequência de registros está cheia.
O acesso para a sequência de log especificada foi negado pelo sistema operacional.
Nenhuma reserva suficientemente grande para se ajustar a data
pode ser encontrada em reservations
.
Comentários
Os dados contidos no data
parâmetro serão concatenados em uma única matriz de bytes para acrescentar como o registro. No entanto, nenhuma provisão é feita para dividir dados novamente em segmentos de matriz quando o registro é lido.
O registro acrescentado consumirá o espaço que foi reservado anteriormente, usando uma reserva especificada pelo reservations
parâmetro . Se o acréscimo for bem-sucedido, ele consumirá a menor área de reserva que pode conter os dados e essa área de reserva será removida da coleção.
Normalmente, esse método é concluído antes da gravação do registro. Para garantir que um registro tenha sido gravado, especifique o ForceFlush sinalizador usando o recordAppendOptions
parâmetro ou chame o Flush método .
Aplica-se a
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)
Acrescenta um registro de log ao IRecordSequence, usando o espaço reservado anteriormente na sequência. Esse método não pode ser herdado.
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>>
Uma lista de segmentos de matriz de bytes que serão concatenados e acrescentados como o registro.
- userRecord
- SequenceNumber
O número de sequência do próximo registro na ordem especificada pelo usuário.
- previousRecord
- SequenceNumber
O número de sequência do próximo registro na ordem Anterior.
- recordAppendOptions
- RecordAppendOptions
Um valor válido de RecordAppendOptions que especifica como os dados devem ser gravados.
- reservations
- ReservationCollection
Um ReservationCollection que contém a reserva que deve ser usada para este registro.
Retornos
O número de sequência do registro de log acrescentado.
Implementações
Exceções
userRecord
ou previousRecord
não é válido para essa sequência.
- ou -
data
não pode ser anexado porque é maior que o tamanho máximo do registro.
- ou -
reservations
não foi criado por essa sequência de registro.
Um ou mais argumentos são null
.
userRecord
ou previousRecord
não está entre os números de base e de última sequência dessa sequência.
A solicitação não pôde ser executada devido a uma exceção de E/S inesperada.
- ou -
Não foi possível executar a solicitação devido a um erro de dispositivo de E/S.
Não é possível executar a operação porque a sequência de registros foi aberta com acesso somente leitura.
O método foi chamado depois que a sequência foi descartada.
Não há memória suficiente para continuar a execução do programa.
A sequência de registros está cheia.
O acesso para a sequência de log especificada foi negado pelo sistema operacional.
Nenhuma reserva suficientemente grande para se ajustar a data
pode ser encontrada em reservations
.
Comentários
Os dados contidos no data
parâmetro serão concatenados em uma única matriz de bytes para acrescentar como o registro. No entanto, nenhuma provisão é feita para dividir dados novamente em segmentos de matriz quando o registro é lido.
O registro acrescentado consumirá o espaço que foi reservado anteriormente, usando uma reserva especificada pelo reservations
parâmetro . Se o acréscimo for bem-sucedido, ele consumirá a menor área de reserva que pode conter os dados e essa área de reserva será removida da coleção.
Normalmente, esse método é concluído antes da gravação do registro. Para garantir que um registro tenha sido gravado, especifique o ForceFlush sinalizador usando o recordAppendOptions
parâmetro ou chame o Flush método .
Aplica-se a
Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions)
Grava um registro de log para o LogRecordSequence. Esse método não pode ser herdado.
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>
Uma lista de segmentos de matriz de bytes que serão concatenados e acrescentados como o registro.
- nextUndoRecord
- SequenceNumber
O número de sequência do próximo registro na ordem especificada pelo usuário.
- previousRecord
- SequenceNumber
O número de sequência do próximo registro na ordem Anterior.
- recordAppendOptions
- RecordAppendOptions
Um valor válido de RecordAppendOptions que especifica como os dados devem ser gravados.
Retornos
O número de sequência do registro de log acrescentado.
Implementações
Exceções
userRecord
ou previousRecord
não é válido para essa sequência.
- ou -
data
não pode ser anexado porque é maior que o tamanho máximo do registro.
- ou -
reservations
não foi criado por essa sequência de registro.
Um ou mais argumentos são null
.
userRecord
ou previousRecord
não está entre os números de base e de última sequência dessa sequência.
A solicitação não pôde ser executada devido a uma exceção de E/S inesperada.
- ou -
Não foi possível executar a solicitação devido a um erro de dispositivo de E/S.
Não é possível executar a operação porque a sequência de registros foi aberta com acesso somente leitura.
O método foi chamado depois que a sequência foi descartada.
Não há memória suficiente para continuar a execução do programa.
A sequência de registros está cheia.
O acesso para a sequência de log especificada foi negado pelo sistema operacional.
Exemplos
O exemplo a seguir demonstra como usar esse método para acrescentar um registro de log à sequência.
// 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)
Comentários
Os dados contidos no data
parâmetro serão concatenados em uma única matriz de bytes para acrescentar como o registro. No entanto, nenhuma provisão é feita para dividir dados novamente em segmentos de matriz quando o registro é lido.
Normalmente, esse método é concluído antes da gravação do registro. Para garantir que um registro tenha sido gravado, especifique o ForceFlush sinalizador usando o recordAppendOptions
parâmetro ou chame o Flush método .
Aplica-se a
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions)
Acrescenta um registro de log ao IRecordSequence. Esse método não pode ser herdado.
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>>
Uma lista de segmentos de matriz de bytes que serão concatenados e acrescentados como o registro.
- userRecord
- SequenceNumber
O número de sequência do próximo registro na ordem especificada pelo usuário.
- previousRecord
- SequenceNumber
O número de sequência do próximo registro na ordem Anterior.
- recordAppendOptions
- RecordAppendOptions
Um valor válido de RecordAppendOptions que especifica como os dados devem ser gravados.
Retornos
O número de sequência do registro de log acrescentado.
Implementações
Exceções
userRecord
ou previousRecord
não é válido para essa sequência.
- ou -
data
não pode ser anexado porque é maior que o tamanho máximo do registro.
- ou -
reservations
não foi criado por essa sequência de registro.
Um ou mais argumentos são null
.
userRecord
ou previousRecord
não está entre os números de base e de última sequência dessa sequência.
A solicitação não pôde ser executada devido a uma exceção de E/S inesperada.
- ou -
Não foi possível executar a solicitação devido a um erro de dispositivo de E/S.
Não é possível executar a operação porque a sequência de registros foi aberta com acesso somente leitura.
O método foi chamado depois que a sequência foi descartada.
Não há memória suficiente para continuar a execução do programa.
A sequência de registros está cheia.
O acesso para a sequência de log especificada foi negado pelo sistema operacional.
Comentários
Os dados contidos no data
parâmetro serão concatenados em uma única matriz de bytes para acrescentar como o registro. No entanto, nenhuma provisão é feita para dividir dados novamente em segmentos de matriz quando o registro é lido.
Normalmente, esse método é concluído antes da gravação do registro. Para garantir que um registro tenha sido gravado, especifique o ForceFlush sinalizador usando o recordAppendOptions
parâmetro ou chame o Flush método .