Log5j et le scope Singleton de Spring: casse gueule

Je viens de perdre près d’une heure à me battre avec un problème étrange.
Dans l’application sur laquelle je travaille actuellement, j’utilise Spring 2.5 pour la DI ainsi que le support JDBC, et je viens de migrer de Log4j à Log5j (j’en parle dans un billet précédent).

Seulement, lors de la migration, j’arrêtais pas d’avoir une exception de type Class Cast Exception:

org.apache.log4j.Logger cannot be cast to com.spinn3r.log5j.Logger

sur la déclaration du logger:

private static final com.spinn3r.log5j.Logger log2 = com.spinn3r.log5j.Logger.getLogger();

Après près d’une heure à essayer de comprendre pourquoi, ou du moins à isoler les conditions pour reproduire ce bug, je suis arrivé à ceci:
Cette exception ne survient que si la classe contenant le logger est déclarée en scope Singleton de Spring …
Apparemment, je suis le seul au monde à utiliser Log5j car la liste des bugs est totalement vide.
J’ai donc agi en bon utilisateur, et j’ai rempli un formulaire bug dans le site de log5j.

Entre temps, je vais m’orienter plutôt vers Slf4j.

—-

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: