Partilhar via


LogRecordSequence.Append Método

Definição

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 .

Aplica-se a