2011-11-15 2 views
0

Je suis au courant de SiftingAppener et sa capacité à séparer l'enregistrement des événements de journaux individuels fichiersLogback - SiftingAppender avec embeded DB Appender

Au lieu de cela, peut SiftingAppender l'enregistrement des événements séparés selon les sessions utilisateur, de sorte que les journaux générés par chaque l'utilisateur va dans une déclaration d'insertion SQL (similaire à FileAppender avec un fichier)

Des idées ou des suggestions sur la façon d'y parvenir?

S'il vous plaît noter la Row numéros

Avant:

TimeStamp  Formatted Message  Logger_Name   Level_String 
1 1321325688174 Step 2:  Then stop com.test.Account INFO 
2 1321325687931 Step 1:  The force com.test.Account INFO 

Après:

TimeStamp  Formatted Message  Logger_Name   Level_String 
1 1321325688174 Step 2:  Then stop com.test.Account INFO 
    1321325687931 Step 1:  The force com.test.Account INFO 

Merci.

+0

Pourriez-vous poster un exemple, s'il vous plaît? – palacsint

+0

Donc le 'after' est un seul enregistrement et vous ne voulez qu'une seule insertion comme 'INSERT INTO logs (TimeStamp, formaté, ...) VALEURS ('1321325688174 1321325687931', 'Étape 2: Étape 1:', ...) '? – palacsint

Répondre

0

Je ne connais pas d'appender existant qui le ferait mais cela ne semble pas si difficile à faire soi-même. Vous devez implémenter votre propre classe d'extension qui étend AppenderBase et configurez le SiftingAppender pour l'utiliser. À l'intérieur de votre nouveau CachingSqlAppender (ou peu importe comment vous l'appelez), vous devez gérer la mise en cache temporaire de toutes les demandes à l'intérieur de votre appender, puis à intervalles prédéfinis, les écrire tous.

Il semble cependant que ce soit difficile à respecter car vous devrez déterminer combien de temps votre appender attend un autre événement avant de faire l'insertion et il devra au moins être plus court que la durée de vie que SiftingAppender donne aux appenders qu'il crée.

Questions connexes