Bonjour,

J'ai développé un système de logs centralisés pour une application. Ces logs utilisent un JDBCAppender (que j'ai légèrement modifié) de l'API log4j afin de les insérer dans une base de données.

L'insertion étant assez couteuse, j'ai redéfini la méthode execute() du JDBCAppender afin qu'elle lance un thread et puis appelle la vraie méthode execute().

En fait, je souhaite que mon traitement principal se fasse le plus rapidement possible quitte à repousser l'insertion des logs vers la fin du traitement principal. Seulement ne connaissant pas à l'avance la durée de mon traitement principal, je ne suis pas assuré que l'insertion aura lieu à la fin.

Pire, il se peut que le thread principal et le thread d'insertion des logs alternent et de ce fait ralentissent le déroulement de la tâche.

Avez-vous des suggestions à me proposer afin de m'assurer (ou presque) que le traitement des logs ait lieu à la fin de ma tâche principale ?