LogRecordSequence.Append Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Skriver en loggpost till IRecordSequence.
Överlagringar
| Name | Description |
|---|---|
| Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection) |
Lägger till en loggpost i IRecordSequence, med utrymme som tidigare reserverats i sekvensen. Den här metoden kan inte ärvas. |
| Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection) |
Lägger till en loggpost i IRecordSequence, med utrymme som tidigare reserverats i sekvensen. Den här metoden kan inte ärvas. |
| Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions) |
Skriver en loggpost till LogRecordSequence. Den här metoden kan inte ärvas. |
| Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions) |
Lägger till en loggpost i IRecordSequence. Den här metoden kan inte ärvas. |
Exempel
Det här exemplet visar hur du Append använder medlemmen
// 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)
Lägger till en loggpost i IRecordSequence, med utrymme som tidigare reserverats i sekvensen. Den här metoden kan inte ärvas.
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
Parametrar
- data
- ArraySegment<Byte>
En lista över bytematrissegment som sammanfogas och läggs till som post.
- nextUndoRecord
- SequenceNumber
Sekvensnumret för nästa post i den användardefinierade ordningen.
- previousRecord
- SequenceNumber
Sekvensnumret för nästa post i Föregående ordning.
- recordAppendOptions
- RecordAppendOptions
Ett giltigt värde RecordAppendOptions för detta anger hur data ska skrivas.
- reservations
- ReservationCollection
En ReservationCollection som innehåller reservationen som ska användas för den här posten.
Returer
Sekvensnumret för den bifogade loggposten.
Implementeringar
Undantag
userRecord eller previousRecord är inte giltig för den här sekvensen.
-eller-
data kan inte läggas till eftersom den är större än den maximala poststorleken.
-eller-
reservations skapades inte av den här postsekvensen.
Ett eller flera av argumenten är null.
userRecord eller previousRecord är inte mellan bas- och sista sekvensnumren i den här sekvensen.
Det gick inte att utföra begäran på grund av ett oväntat I/O-undantag.
-eller-
Det gick inte att utföra begäran på grund av ett I/O-enhetsfel.
Det går inte att utföra åtgärden eftersom postsekvensen öppnades med skrivskyddad åtkomst.
Metoden anropades efter att sekvensen har tagits bort.
Det finns inte tillräckligt med minne för att fortsätta körningen av programmet.
Postsekvensen är full.
Åtkomst för den angivna loggsekvensen nekas av operativsystemet.
Det finns ingen reservation som är tillräckligt stor för att passa data i reservations.
Kommentarer
Data som finns i parametern data sammanfogas till en enskild bytematris för att läggas till som post. Ingen etablering görs dock för att dela upp data i matrissegment igen när posten läse.
Den bifogade posten förbrukar utrymme som tidigare har reserverats med hjälp av en reservation som anges av parametern reservations . Om tillägget lyckas kommer det att förbruka det minsta reservationsområdet som kan innehålla data, och det reservationsområdet tas bort från samlingen.
Normalt slutförs den här metoden innan posten har skrivits. För att säkerställa att en post har skrivits anger du ForceFlush antingen flaggan med parametern recordAppendOptions eller anropar Flush metoden.
Gäller för
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)
Lägger till en loggpost i IRecordSequence, med utrymme som tidigare reserverats i sekvensen. Den här metoden kan inte ärvas.
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
Parametrar
- data
- IList<ArraySegment<Byte>>
En lista över bytematrissegment som sammanfogas och läggs till som post.
- userRecord
- SequenceNumber
Sekvensnumret för nästa post i den användardefinierade ordningen.
- previousRecord
- SequenceNumber
Sekvensnumret för nästa post i Föregående ordning.
- recordAppendOptions
- RecordAppendOptions
Ett giltigt värde RecordAppendOptions för detta anger hur data ska skrivas.
- reservations
- ReservationCollection
En ReservationCollection som innehåller reservationen som ska användas för den här posten.
Returer
Sekvensnumret för den bifogade loggposten.
Implementeringar
Undantag
userRecord eller previousRecord är inte giltig för den här sekvensen.
-eller-
data kan inte läggas till eftersom den är större än den maximala poststorleken.
-eller-
reservations skapades inte av den här postsekvensen.
Ett eller flera av argumenten är null.
userRecord eller previousRecord är inte mellan bas- och sista sekvensnumren i den här sekvensen.
Det gick inte att utföra begäran på grund av ett oväntat I/O-undantag.
-eller-
Det gick inte att utföra begäran på grund av ett I/O-enhetsfel.
Det går inte att utföra åtgärden eftersom postsekvensen öppnades med skrivskyddad åtkomst.
Metoden anropades efter att sekvensen har tagits bort.
Det finns inte tillräckligt med minne för att fortsätta körningen av programmet.
Postsekvensen är full.
Åtkomst för den angivna loggsekvensen nekas av operativsystemet.
Det finns ingen reservation som är tillräckligt stor för att passa data i reservations.
Kommentarer
Data som finns i parametern data sammanfogas till en enskild bytematris för att läggas till som post. Ingen etablering görs dock för att dela upp data i matrissegment igen när posten läse.
Den bifogade posten förbrukar utrymme som tidigare har reserverats med hjälp av en reservation som anges av parametern reservations . Om tillägget lyckas kommer det att förbruka det minsta reservationsområdet som kan innehålla data, och det reservationsområdet tas bort från samlingen.
Normalt slutförs den här metoden innan posten har skrivits. För att säkerställa att en post har skrivits anger du ForceFlush antingen flaggan med parametern recordAppendOptions eller anropar Flush metoden.
Gäller för
Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions)
Skriver en loggpost till LogRecordSequence. Den här metoden kan inte ärvas.
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
Parametrar
- data
- ArraySegment<Byte>
En lista över bytematrissegment som sammanfogas och läggs till som post.
- nextUndoRecord
- SequenceNumber
Sekvensnumret för nästa post i den användardefinierade ordningen.
- previousRecord
- SequenceNumber
Sekvensnumret för nästa post i Föregående ordning.
- recordAppendOptions
- RecordAppendOptions
Ett giltigt värde RecordAppendOptions för detta anger hur data ska skrivas.
Returer
Sekvensnumret för den bifogade loggposten.
Implementeringar
Undantag
userRecord eller previousRecord är inte giltig för den här sekvensen.
-eller-
data kan inte läggas till eftersom den är större än den maximala poststorleken.
-eller-
reservations skapades inte av den här postsekvensen.
Ett eller flera av argumenten är null.
userRecord eller previousRecord är inte mellan bas- och sista sekvensnumren i den här sekvensen.
Det gick inte att utföra begäran på grund av ett oväntat I/O-undantag.
-eller-
Det gick inte att utföra begäran på grund av ett I/O-enhetsfel.
Det går inte att utföra åtgärden eftersom postsekvensen öppnades med skrivskyddad åtkomst.
Metoden anropades efter att sekvensen har tagits bort.
Det finns inte tillräckligt med minne för att fortsätta körningen av programmet.
Postsekvensen är full.
Åtkomst för den angivna loggsekvensen nekas av operativsystemet.
Exempel
I följande exempel visas hur du använder den här metoden för att lägga till en loggpost i sekvensen.
// 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)
Kommentarer
Data som finns i parametern data sammanfogas till en enskild bytematris för att läggas till som post. Ingen etablering görs dock för att dela upp data i matrissegment igen när posten läse.
Normalt slutförs den här metoden innan posten har skrivits. För att säkerställa att en post har skrivits anger du ForceFlush antingen flaggan med parametern recordAppendOptions eller anropar Flush metoden.
Gäller för
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions)
Lägger till en loggpost i IRecordSequence. Den här metoden kan inte ärvas.
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
Parametrar
- data
- IList<ArraySegment<Byte>>
En lista över bytematrissegment som sammanfogas och läggs till som post.
- userRecord
- SequenceNumber
Sekvensnumret för nästa post i den användardefinierade ordningen.
- previousRecord
- SequenceNumber
Sekvensnumret för nästa post i Föregående ordning.
- recordAppendOptions
- RecordAppendOptions
Ett giltigt värde RecordAppendOptions för detta anger hur data ska skrivas.
Returer
Sekvensnumret för den bifogade loggposten.
Implementeringar
Undantag
userRecord eller previousRecord är inte giltig för den här sekvensen.
-eller-
data kan inte läggas till eftersom den är större än den maximala poststorleken.
-eller-
reservations skapades inte av den här postsekvensen.
Ett eller flera av argumenten är null.
userRecord eller previousRecord är inte mellan bas- och sista sekvensnumren i den här sekvensen.
Det gick inte att utföra begäran på grund av ett oväntat I/O-undantag.
-eller-
Det gick inte att utföra begäran på grund av ett I/O-enhetsfel.
Det går inte att utföra åtgärden eftersom postsekvensen öppnades med skrivskyddad åtkomst.
Metoden anropades efter att sekvensen har tagits bort.
Det finns inte tillräckligt med minne för att fortsätta körningen av programmet.
Postsekvensen är full.
Åtkomst för den angivna loggsekvensen nekas av operativsystemet.
Kommentarer
Data som finns i parametern data sammanfogas till en enskild bytematris för att läggas till som post. Ingen etablering görs dock för att dela upp data i matrissegment igen när posten läse.
Normalt slutförs den här metoden innan posten har skrivits. För att säkerställa att en post har skrivits anger du ForceFlush antingen flaggan med parametern recordAppendOptions eller anropar Flush metoden.