LogRecordSequence.Append Метод

Определение

Записывает запись журнала в файл IRecordSequence.

Перегрузки

Имя Описание
Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)

Добавляет запись журнала в IRecordSequenceпоследовательность с использованием пространства, ранее зарезервированного в последовательности. Этот метод нельзя наследовать.

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

Добавляет запись журнала в IRecordSequenceпоследовательность с использованием пространства, ранее зарезервированного в последовательности. Этот метод нельзя наследовать.

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

Записывает запись журнала в файл LogRecordSequence. Этот метод нельзя наследовать.

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

Добавляет запись журнала в журнал IRecordSequence. Этот метод нельзя наследовать.

Примеры

В этом примере показано, как использовать 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)

Добавляет запись журнала в IRecordSequenceпоследовательность с использованием пространства, ранее зарезервированного в последовательности. Этот метод нельзя наследовать.

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

Параметры

data
ArraySegment<Byte>

Список сегментов массива байтов, которые будут сцеплены и добавлены в качестве записи.

nextUndoRecord
SequenceNumber

Порядковый номер следующей записи в указанном пользователем порядке.

previousRecord
SequenceNumber

Порядковый номер следующей записи в предыдущем порядке.

recordAppendOptions
RecordAppendOptions

Допустимое значение RecordAppendOptions , указывающее, как должны быть записаны данные.

reservations
ReservationCollection

Объект, ReservationCollection содержащий резервирование, которое должно использоваться для этой записи.

Возвращаемое значение

Порядковый номер добавленной записи журнала.

Реализации

Исключения

userRecord или previousRecord недопустимый для этой последовательности.

–или–

data невозможно добавить, так как он превышает максимальный размер записи.

–или–

reservations не был создан этой последовательностью записей.

Один или несколько аргументов.null

userRecord или previousRecord не находится между базовыми и последними номерами последовательности этой последовательности.

Не удалось выполнить запрос из-за неожиданного исключения ввода-вывода.

–или–

Не удалось выполнить запрос из-за ошибки устройства ввода-вывода.

Невозможно выполнить операцию, так как последовательность записей была открыта с доступом только для чтения.

Метод был вызван после удаления последовательности.

Недостаточно памяти для продолжения выполнения программы.

Последовательность записей заполнена.

Доступ к указанной последовательности журналов запрещен операционной системой.

В ней нет достаточно большого резервирования, чтобы его можно data было найти reservations.

Комментарии

Данные, содержащиеся в параметре data , будут объединяться в один массив байтов для добавления в качестве записи. Однако при чтении записи не выполняется подготовка для разделения данных обратно на сегменты массива.

Добавленная запись будет использовать пространство, ранее зарезервированное с помощью резервирования, указанного параметром reservations . Если добавление успешно выполнено, оно будет использовать наименьшую область резервирования, которая может содержать данные, и эта область резервирования будет удалена из коллекции.

Как правило, этот метод завершается до записи. Чтобы убедиться, что запись была записана, укажите ForceFlush флаг с помощью recordAppendOptions параметра или вызовите Flush метод.

Применяется к

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

Добавляет запись журнала в IRecordSequenceпоследовательность с использованием пространства, ранее зарезервированного в последовательности. Этот метод нельзя наследовать.

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

Параметры

data
IList<ArraySegment<Byte>>

Список сегментов массива байтов, которые будут сцеплены и добавлены в качестве записи.

userRecord
SequenceNumber

Порядковый номер следующей записи в указанном пользователем порядке.

previousRecord
SequenceNumber

Порядковый номер следующей записи в предыдущем порядке.

recordAppendOptions
RecordAppendOptions

Допустимое значение RecordAppendOptions , указывающее, как должны быть записаны данные.

reservations
ReservationCollection

Объект, ReservationCollection содержащий резервирование, которое должно использоваться для этой записи.

Возвращаемое значение

Порядковый номер добавленной записи журнала.

Реализации

Исключения

userRecord или previousRecord недопустимый для этой последовательности.

–или–

data невозможно добавить, так как он превышает максимальный размер записи.

–или–

reservations не был создан этой последовательностью записей.

Один или несколько аргументов.null

userRecord или previousRecord не находится между базовыми и последними номерами последовательности этой последовательности.

Не удалось выполнить запрос из-за неожиданного исключения ввода-вывода.

–или–

Не удалось выполнить запрос из-за ошибки устройства ввода-вывода.

Невозможно выполнить операцию, так как последовательность записей была открыта с доступом только для чтения.

Метод был вызван после удаления последовательности.

Недостаточно памяти для продолжения выполнения программы.

Последовательность записей заполнена.

Доступ к указанной последовательности журналов запрещен операционной системой.

В ней нет достаточно большого резервирования, чтобы его можно data было найти reservations.

Комментарии

Данные, содержащиеся в параметре data , будут объединяться в один массив байтов для добавления в качестве записи. Однако при чтении записи не выполняется подготовка для разделения данных обратно на сегменты массива.

Добавленная запись будет использовать пространство, ранее зарезервированное с помощью резервирования, указанного параметром reservations . Если добавление успешно выполнено, оно будет использовать наименьшую область резервирования, которая может содержать данные, и эта область резервирования будет удалена из коллекции.

Как правило, этот метод завершается до записи. Чтобы убедиться, что запись была записана, укажите ForceFlush флаг с помощью recordAppendOptions параметра или вызовите Flush метод.

Применяется к

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

Записывает запись журнала в файл LogRecordSequence. Этот метод нельзя наследовать.

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

Параметры

data
ArraySegment<Byte>

Список сегментов массива байтов, которые будут сцеплены и добавлены в качестве записи.

nextUndoRecord
SequenceNumber

Порядковый номер следующей записи в указанном пользователем порядке.

previousRecord
SequenceNumber

Порядковый номер следующей записи в предыдущем порядке.

recordAppendOptions
RecordAppendOptions

Допустимое значение RecordAppendOptions , указывающее, как должны быть записаны данные.

Возвращаемое значение

Порядковый номер добавленной записи журнала.

Реализации

Исключения

userRecord или previousRecord недопустимый для этой последовательности.

–или–

data невозможно добавить, так как он превышает максимальный размер записи.

–или–

reservations не был создан этой последовательностью записей.

Один или несколько аргументов.null

userRecord или previousRecord не находится между базовыми и последними номерами последовательности этой последовательности.

Не удалось выполнить запрос из-за неожиданного исключения ввода-вывода.

–или–

Не удалось выполнить запрос из-за ошибки устройства ввода-вывода.

Невозможно выполнить операцию, так как последовательность записей была открыта с доступом только для чтения.

Метод был вызван после удаления последовательности.

Недостаточно памяти для продолжения выполнения программы.

Последовательность записей заполнена.

Доступ к указанной последовательности журналов запрещен операционной системой.

Примеры

В следующем примере показано, как использовать этот метод для добавления записи журнала в последовательность.

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

Комментарии

Данные, содержащиеся в параметре data , будут объединяться в один массив байтов для добавления в качестве записи. Однако при чтении записи не выполняется подготовка для разделения данных обратно на сегменты массива.

Как правило, этот метод завершается до записи. Чтобы убедиться, что запись была записана, укажите ForceFlush флаг с помощью recordAppendOptions параметра или вызовите Flush метод.

Применяется к

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

Добавляет запись журнала в журнал IRecordSequence. Этот метод нельзя наследовать.

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

Параметры

data
IList<ArraySegment<Byte>>

Список сегментов массива байтов, которые будут сцеплены и добавлены в качестве записи.

userRecord
SequenceNumber

Порядковый номер следующей записи в указанном пользователем порядке.

previousRecord
SequenceNumber

Порядковый номер следующей записи в предыдущем порядке.

recordAppendOptions
RecordAppendOptions

Допустимое значение RecordAppendOptions , указывающее, как должны быть записаны данные.

Возвращаемое значение

Порядковый номер добавленной записи журнала.

Реализации

Исключения

userRecord или previousRecord недопустимый для этой последовательности.

–или–

data невозможно добавить, так как он превышает максимальный размер записи.

–или–

reservations не был создан этой последовательностью записей.

Один или несколько аргументов.null

userRecord или previousRecord не находится между базовыми и последними номерами последовательности этой последовательности.

Не удалось выполнить запрос из-за неожиданного исключения ввода-вывода.

–или–

Не удалось выполнить запрос из-за ошибки устройства ввода-вывода.

Невозможно выполнить операцию, так как последовательность записей была открыта с доступом только для чтения.

Метод был вызван после удаления последовательности.

Недостаточно памяти для продолжения выполнения программы.

Последовательность записей заполнена.

Доступ к указанной последовательности журналов запрещен операционной системой.

Комментарии

Данные, содержащиеся в параметре data , будут объединяться в один массив байтов для добавления в качестве записи. Однако при чтении записи не выполняется подготовка для разделения данных обратно на сегменты массива.

Как правило, этот метод завершается до записи. Чтобы убедиться, что запись была записана, укажите ForceFlush флаг с помощью recordAppendOptions параметра или вызовите Flush метод.

Применяется к