LogRecordSequence.Append Metoda

Definice

Zapíše záznam protokolu do záznamu IRecordSequence.

Přetížení

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

Připojí záznam protokolu k záznamu IRecordSequence, pomocí mezery dříve rezervované v sekvenci. Tuto metodu nelze zdědit.

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

Připojí záznam protokolu k záznamu IRecordSequence, pomocí mezery dříve rezervované v sekvenci. Tuto metodu nelze zdědit.

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

Zapíše záznam protokolu do záznamu LogRecordSequence. Tuto metodu nelze zdědit.

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

Připojí záznam protokolu k objektu IRecordSequence. Tuto metodu nelze zdědit.

Příklady

Tento příklad ukazuje, jak používat člena 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)

Připojí záznam protokolu k záznamu IRecordSequence, pomocí mezery dříve rezervované v sekvenci. Tuto metodu nelze zdědit.

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

Parametry

data
ArraySegment<Byte>

Seznam segmentů pole bajtů, které budou zřetězeny a připojeny jako záznam.

nextUndoRecord
SequenceNumber

Pořadové číslo dalšího záznamu v pořadí zadaném uživatelem.

previousRecord
SequenceNumber

Pořadové číslo dalšího záznamu v předchozím pořadí.

recordAppendOptions
RecordAppendOptions

Platná hodnota, která určuje způsob zápisu RecordAppendOptions dat.

reservations
ReservationCollection

A ReservationCollection obsahující rezervaci, která by se měla pro tento záznam použít.

Návraty

Pořadové číslo připojeného záznamu protokolu.

Implementuje

Výjimky

userRecord nebo previousRecord není pro tuto sekvenci platný.

nebo

data nelze připojit, protože je větší než maximální velikost záznamu.

nebo

reservations nebyla vytvořena touto sekvencí záznamů.

Jeden nebo více argumentů jsou null.

userRecord nebo previousRecord není mezi základním a posledním pořadovými čísly této sekvence.

Požadavek nelze provést kvůli neočekávané výjimce vstupně-výstupní operace.

nebo

Požadavek nelze provést kvůli chybě vstupně-výstupního zařízení.

Operaci nelze provést, protože sekvence záznamů byla otevřena s přístupem jen pro čtení.

Metoda byla volána po odstranění sekvence.

Pro pokračování v provádění programu není dostatek paměti.

Posloupnost záznamů je plná.

Operační systém odepře přístup k zadané sekvenci protokolu.

Rezervace není dostatečně velká, aby se vešla data do reservationsumístění .

Poznámky

Data obsažená v parametru data se zřetězí do jednoho bajtového pole pro připojení jako záznam. Při čtení záznamu však není provedeno žádné zřizování pro rozdělení dat zpět do segmentů pole.

Připojený záznam spotřebuje místo, které bylo dříve rezervováno, pomocí rezervace určené parametrem reservations . Pokud připojení proběhne úspěšně, spotřebuje nejmenší oblast rezervace, která může obsahovat data, a tato oblast rezervace se z kolekce odebere.

Za normálních okolností se tato metoda dokončí před zápisem záznamu. Pokud chcete zajistit, aby byl záznam zapsán, zadejte ForceFlush příznak pomocí parametru recordAppendOptions nebo volejte metodu Flush .

Platí pro

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

Připojí záznam protokolu k záznamu IRecordSequence, pomocí mezery dříve rezervované v sekvenci. Tuto metodu nelze zdědit.

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

Parametry

data
IList<ArraySegment<Byte>>

Seznam segmentů pole bajtů, které budou zřetězeny a připojeny jako záznam.

userRecord
SequenceNumber

Pořadové číslo dalšího záznamu v pořadí zadaném uživatelem.

previousRecord
SequenceNumber

Pořadové číslo dalšího záznamu v předchozím pořadí.

recordAppendOptions
RecordAppendOptions

Platná hodnota, která určuje způsob zápisu RecordAppendOptions dat.

reservations
ReservationCollection

A ReservationCollection obsahující rezervaci, která by se měla pro tento záznam použít.

Návraty

Pořadové číslo připojeného záznamu protokolu.

Implementuje

Výjimky

userRecord nebo previousRecord není pro tuto sekvenci platný.

nebo

data nelze připojit, protože je větší než maximální velikost záznamu.

nebo

reservations nebyla vytvořena touto sekvencí záznamů.

Jeden nebo více argumentů jsou null.

userRecord nebo previousRecord není mezi základním a posledním pořadovými čísly této sekvence.

Požadavek nelze provést kvůli neočekávané výjimce vstupně-výstupní operace.

nebo

Požadavek nelze provést kvůli chybě vstupně-výstupního zařízení.

Operaci nelze provést, protože sekvence záznamů byla otevřena s přístupem jen pro čtení.

Metoda byla volána po odstranění sekvence.

Pro pokračování v provádění programu není dostatek paměti.

Posloupnost záznamů je plná.

Operační systém odepře přístup k zadané sekvenci protokolu.

Rezervace není dostatečně velká, aby se vešla data do reservationsumístění .

Poznámky

Data obsažená v parametru data se zřetězí do jednoho bajtového pole pro připojení jako záznam. Při čtení záznamu však není provedeno žádné zřizování pro rozdělení dat zpět do segmentů pole.

Připojený záznam spotřebuje místo, které bylo dříve rezervováno, pomocí rezervace určené parametrem reservations . Pokud připojení proběhne úspěšně, spotřebuje nejmenší oblast rezervace, která může obsahovat data, a tato oblast rezervace se z kolekce odebere.

Za normálních okolností se tato metoda dokončí před zápisem záznamu. Pokud chcete zajistit, aby byl záznam zapsán, zadejte ForceFlush příznak pomocí parametru recordAppendOptions nebo volejte metodu Flush .

Platí pro

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

Zapíše záznam protokolu do záznamu LogRecordSequence. Tuto metodu nelze zdědit.

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

Parametry

data
ArraySegment<Byte>

Seznam segmentů pole bajtů, které budou zřetězeny a připojeny jako záznam.

nextUndoRecord
SequenceNumber

Pořadové číslo dalšího záznamu v pořadí zadaném uživatelem.

previousRecord
SequenceNumber

Pořadové číslo dalšího záznamu v předchozím pořadí.

recordAppendOptions
RecordAppendOptions

Platná hodnota, která určuje způsob zápisu RecordAppendOptions dat.

Návraty

Pořadové číslo připojeného záznamu protokolu.

Implementuje

Výjimky

userRecord nebo previousRecord není pro tuto sekvenci platný.

nebo

data nelze připojit, protože je větší než maximální velikost záznamu.

nebo

reservations nebyla vytvořena touto sekvencí záznamů.

Jeden nebo více argumentů jsou null.

userRecord nebo previousRecord není mezi základním a posledním pořadovými čísly této sekvence.

Požadavek nelze provést kvůli neočekávané výjimce vstupně-výstupní operace.

nebo

Požadavek nelze provést kvůli chybě vstupně-výstupního zařízení.

Operaci nelze provést, protože sekvence záznamů byla otevřena s přístupem jen pro čtení.

Metoda byla volána po odstranění sekvence.

Pro pokračování v provádění programu není dostatek paměti.

Posloupnost záznamů je plná.

Operační systém odepře přístup k zadané sekvenci protokolu.

Příklady

Následující příklad ukazuje, jak tuto metodu použít k připojení záznamu protokolu do sekvence.

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

Poznámky

Data obsažená v parametru data se zřetězí do jednoho bajtového pole pro připojení jako záznam. Při čtení záznamu však není provedeno žádné zřizování pro rozdělení dat zpět do segmentů pole.

Za normálních okolností se tato metoda dokončí před zápisem záznamu. Pokud chcete zajistit, aby byl záznam zapsán, zadejte ForceFlush příznak pomocí parametru recordAppendOptions nebo volejte metodu Flush .

Platí pro

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

Připojí záznam protokolu k objektu IRecordSequence. Tuto metodu nelze zdědit.

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

Parametry

data
IList<ArraySegment<Byte>>

Seznam segmentů pole bajtů, které budou zřetězeny a připojeny jako záznam.

userRecord
SequenceNumber

Pořadové číslo dalšího záznamu v pořadí zadaném uživatelem.

previousRecord
SequenceNumber

Pořadové číslo dalšího záznamu v předchozím pořadí.

recordAppendOptions
RecordAppendOptions

Platná hodnota, která určuje způsob zápisu RecordAppendOptions dat.

Návraty

Pořadové číslo připojeného záznamu protokolu.

Implementuje

Výjimky

userRecord nebo previousRecord není pro tuto sekvenci platný.

nebo

data nelze připojit, protože je větší než maximální velikost záznamu.

nebo

reservations nebyla vytvořena touto sekvencí záznamů.

Jeden nebo více argumentů jsou null.

userRecord nebo previousRecord není mezi základním a posledním pořadovými čísly této sekvence.

Požadavek nelze provést kvůli neočekávané výjimce vstupně-výstupní operace.

nebo

Požadavek nelze provést kvůli chybě vstupně-výstupního zařízení.

Operaci nelze provést, protože sekvence záznamů byla otevřena s přístupem jen pro čtení.

Metoda byla volána po odstranění sekvence.

Pro pokračování v provádění programu není dostatek paměti.

Posloupnost záznamů je plná.

Operační systém odepře přístup k zadané sekvenci protokolu.

Poznámky

Data obsažená v parametru data se zřetězí do jednoho bajtového pole pro připojení jako záznam. Při čtení záznamu však není provedeno žádné zřizování pro rozdělení dat zpět do segmentů pole.

Za normálních okolností se tato metoda dokončí před zápisem záznamu. Pokud chcete zajistit, aby byl záznam zapsán, zadejte ForceFlush příznak pomocí parametru recordAppendOptions nebo volejte metodu Flush .

Platí pro