LogRecordSequence.Append Méthode

Définition

Écrit un enregistrement de journal dans le IRecordSequencefichier journal .

Surcharges

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

Ajoute un enregistrement de journal à l’espace IRecordSequenceprécédemment réservé dans la séquence. Cette méthode ne peut pas être héritée.

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

Ajoute un enregistrement de journal à l’espace IRecordSequenceprécédemment réservé dans la séquence. Cette méthode ne peut pas être héritée.

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

Écrit un enregistrement de journal dans le LogRecordSequencefichier journal . Cette méthode ne peut pas être héritée.

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

Ajoute un enregistrement de journal à l’objet IRecordSequence. Cette méthode ne peut pas être héritée.

Exemples

Cet exemple montre comment utiliser le Append membre

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

Ajoute un enregistrement de journal à l’espace IRecordSequenceprécédemment réservé dans la séquence. Cette méthode ne peut pas être héritée.

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

Paramètres

data
ArraySegment<Byte>

Liste des segments de tableau d’octets qui seront concaténés et ajoutés en tant qu’enregistrement.

nextUndoRecord
SequenceNumber

Numéro de séquence de l’enregistrement suivant dans l’ordre spécifié par l’utilisateur.

previousRecord
SequenceNumber

Numéro de séquence de l’enregistrement suivant dans l’ordre précédent.

recordAppendOptions
RecordAppendOptions

Valeur valide de RecordAppendOptions ce qui spécifie la façon dont les données doivent être écrites.

reservations
ReservationCollection

Qui ReservationCollection contient la réservation qui doit être utilisée pour cet enregistrement.

Retours

Numéro de séquence de l’enregistrement de journal ajouté.

Implémente

Exceptions

userRecord ou previousRecord n’est pas valide pour cette séquence.

- ou -

data ne peut pas être ajouté, car il est supérieur à la taille maximale de l’enregistrement.

- ou -

reservations n’a pas été créé par cette séquence d’enregistrements.

Un ou plusieurs arguments sont null.

userRecord ou previousRecord n’est pas compris entre les nombres de base et de dernière séquence de cette séquence.

Impossible d’effectuer la requête en raison d’une exception d’E/S inattendue.

- ou -

Impossible d’effectuer la requête en raison d’une erreur d’appareil d’E/S.

Impossible d’effectuer l’opération, car la séquence d’enregistrements a été ouverte avec un accès en lecture seule.

La méthode a été appelée après la suppression de la séquence.

Il n’y a pas assez de mémoire pour poursuivre l’exécution du programme.

La séquence d’enregistrements est pleine.

L’accès pour la séquence de journaux spécifiée est refusé par le système d’exploitation.

Aucune réservation suffisamment grande pour s’adapter data peut être trouvée dans reservations.

Remarques

Les données contenues dans le data paramètre sont concaténées dans un tableau d’octets unique pour l’ajout en tant qu’enregistrement. Toutefois, aucune disposition n’est effectuée pour fractionner les données en segments de tableau lorsque l’enregistrement est lu.

L’enregistrement ajouté consomme de l’espace précédemment réservé à l’aide d’une réservation spécifiée par le reservations paramètre. Si l’ajout réussit, il consomme la plus petite zone de réservation qui peut contenir les données, et cette zone de réservation sera supprimée de la collection.

Normalement, cette méthode se termine avant l’écriture de l’enregistrement. Pour vous assurer qu’un enregistrement a été écrit, spécifiez l’indicateur ForceFlush à l’aide du recordAppendOptions paramètre ou appelez la Flush méthode.

S’applique à

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

Ajoute un enregistrement de journal à l’espace IRecordSequenceprécédemment réservé dans la séquence. Cette méthode ne peut pas être héritée.

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

Paramètres

data
IList<ArraySegment<Byte>>

Liste des segments de tableau d’octets qui seront concaténés et ajoutés en tant qu’enregistrement.

userRecord
SequenceNumber

Numéro de séquence de l’enregistrement suivant dans l’ordre spécifié par l’utilisateur.

previousRecord
SequenceNumber

Numéro de séquence de l’enregistrement suivant dans l’ordre précédent.

recordAppendOptions
RecordAppendOptions

Valeur valide de RecordAppendOptions ce qui spécifie la façon dont les données doivent être écrites.

reservations
ReservationCollection

Qui ReservationCollection contient la réservation qui doit être utilisée pour cet enregistrement.

Retours

Numéro de séquence de l’enregistrement de journal ajouté.

Implémente

Exceptions

userRecord ou previousRecord n’est pas valide pour cette séquence.

- ou -

data ne peut pas être ajouté, car il est supérieur à la taille maximale de l’enregistrement.

- ou -

reservations n’a pas été créé par cette séquence d’enregistrements.

Un ou plusieurs arguments sont null.

userRecord ou previousRecord n’est pas compris entre les nombres de base et de dernière séquence de cette séquence.

Impossible d’effectuer la requête en raison d’une exception d’E/S inattendue.

- ou -

Impossible d’effectuer la requête en raison d’une erreur d’appareil d’E/S.

Impossible d’effectuer l’opération, car la séquence d’enregistrements a été ouverte avec un accès en lecture seule.

La méthode a été appelée après la suppression de la séquence.

Il n’y a pas assez de mémoire pour poursuivre l’exécution du programme.

La séquence d’enregistrements est pleine.

L’accès pour la séquence de journaux spécifiée est refusé par le système d’exploitation.

Aucune réservation suffisamment grande pour s’adapter data peut être trouvée dans reservations.

Remarques

Les données contenues dans le data paramètre sont concaténées dans un tableau d’octets unique pour l’ajout en tant qu’enregistrement. Toutefois, aucune disposition n’est effectuée pour fractionner les données en segments de tableau lorsque l’enregistrement est lu.

L’enregistrement ajouté consomme de l’espace précédemment réservé à l’aide d’une réservation spécifiée par le reservations paramètre. Si l’ajout réussit, il consomme la plus petite zone de réservation qui peut contenir les données, et cette zone de réservation sera supprimée de la collection.

Normalement, cette méthode se termine avant l’écriture de l’enregistrement. Pour vous assurer qu’un enregistrement a été écrit, spécifiez l’indicateur ForceFlush à l’aide du recordAppendOptions paramètre ou appelez la Flush méthode.

S’applique à

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

Écrit un enregistrement de journal dans le LogRecordSequencefichier journal . Cette méthode ne peut pas être héritée.

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

Paramètres

data
ArraySegment<Byte>

Liste des segments de tableau d’octets qui seront concaténés et ajoutés en tant qu’enregistrement.

nextUndoRecord
SequenceNumber

Numéro de séquence de l’enregistrement suivant dans l’ordre spécifié par l’utilisateur.

previousRecord
SequenceNumber

Numéro de séquence de l’enregistrement suivant dans l’ordre précédent.

recordAppendOptions
RecordAppendOptions

Valeur valide de RecordAppendOptions ce qui spécifie la façon dont les données doivent être écrites.

Retours

Numéro de séquence de l’enregistrement de journal ajouté.

Implémente

Exceptions

userRecord ou previousRecord n’est pas valide pour cette séquence.

- ou -

data ne peut pas être ajouté, car il est supérieur à la taille maximale de l’enregistrement.

- ou -

reservations n’a pas été créé par cette séquence d’enregistrements.

Un ou plusieurs arguments sont null.

userRecord ou previousRecord n’est pas compris entre les nombres de base et de dernière séquence de cette séquence.

Impossible d’effectuer la requête en raison d’une exception d’E/S inattendue.

- ou -

Impossible d’effectuer la requête en raison d’une erreur d’appareil d’E/S.

Impossible d’effectuer l’opération, car la séquence d’enregistrements a été ouverte avec un accès en lecture seule.

La méthode a été appelée après la suppression de la séquence.

Il n’y a pas assez de mémoire pour poursuivre l’exécution du programme.

La séquence d’enregistrements est pleine.

L’accès pour la séquence de journaux spécifiée est refusé par le système d’exploitation.

Exemples

L’exemple suivant montre comment utiliser cette méthode pour ajouter un enregistrement de journal à la séquence.

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

Remarques

Les données contenues dans le data paramètre sont concaténées dans un tableau d’octets unique pour l’ajout en tant qu’enregistrement. Toutefois, aucune disposition n’est effectuée pour fractionner les données en segments de tableau lorsque l’enregistrement est lu.

Normalement, cette méthode se termine avant l’écriture de l’enregistrement. Pour vous assurer qu’un enregistrement a été écrit, spécifiez l’indicateur ForceFlush à l’aide du recordAppendOptions paramètre ou appelez la Flush méthode.

S’applique à

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

Ajoute un enregistrement de journal à l’objet IRecordSequence. Cette méthode ne peut pas être héritée.

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

Paramètres

data
IList<ArraySegment<Byte>>

Liste des segments de tableau d’octets qui seront concaténés et ajoutés en tant qu’enregistrement.

userRecord
SequenceNumber

Numéro de séquence de l’enregistrement suivant dans l’ordre spécifié par l’utilisateur.

previousRecord
SequenceNumber

Numéro de séquence de l’enregistrement suivant dans l’ordre précédent.

recordAppendOptions
RecordAppendOptions

Valeur valide de RecordAppendOptions ce qui spécifie la façon dont les données doivent être écrites.

Retours

Numéro de séquence de l’enregistrement de journal ajouté.

Implémente

Exceptions

userRecord ou previousRecord n’est pas valide pour cette séquence.

- ou -

data ne peut pas être ajouté, car il est supérieur à la taille maximale de l’enregistrement.

- ou -

reservations n’a pas été créé par cette séquence d’enregistrements.

Un ou plusieurs arguments sont null.

userRecord ou previousRecord n’est pas compris entre les nombres de base et de dernière séquence de cette séquence.

Impossible d’effectuer la requête en raison d’une exception d’E/S inattendue.

- ou -

Impossible d’effectuer la requête en raison d’une erreur d’appareil d’E/S.

Impossible d’effectuer l’opération, car la séquence d’enregistrements a été ouverte avec un accès en lecture seule.

La méthode a été appelée après la suppression de la séquence.

Il n’y a pas assez de mémoire pour poursuivre l’exécution du programme.

La séquence d’enregistrements est pleine.

L’accès pour la séquence de journaux spécifiée est refusé par le système d’exploitation.

Remarques

Les données contenues dans le data paramètre sont concaténées dans un tableau d’octets unique pour l’ajout en tant qu’enregistrement. Toutefois, aucune disposition n’est effectuée pour fractionner les données en segments de tableau lorsque l’enregistrement est lu.

Normalement, cette méthode se termine avant l’écriture de l’enregistrement. Pour vous assurer qu’un enregistrement a été écrit, spécifiez l’indicateur ForceFlush à l’aide du recordAppendOptions paramètre ou appelez la Flush méthode.

S’applique à