Hello,
Je souhaite écrire une classe de logging utilitaire pour écrire des logs Log4J. Quelque chose du genre :
Le but est de pouvoir, à n'importe quel endroit dans mon projet, faire un simple appel à cette classe utilitaire en lui passant un message, et que celle-ci se charge de logger l'information tout en lui ajoutant un peu de "déco" (en-tête, quelques données contextuelles, etc.).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public class Logger { public static void info (String message) { LogFactory.getLog(getCallingClassName()).info(getHeader() + message); } ...
Mais là où ça se complique c'est que j'aimerais pouvoir utiliser ces logs dans un contexte de débogage, et donc bénéficier du nom de la classe et du numéro de ligne où le log a été écrit. Or en procédant comme ci-dessus, le log affiche (forcément) le n° de ligne de ma classe utilitaire, ce qui n'est pas d'une très grande utilité.
Existe-t-il donc un moyen de biaiser Log4J pour qu'il lise ses informations 2 ou 3 lignes plus haut dans la pile d'exécution ? Je vois bien comment récupérer le nom de la classe appelante, mais il ne s'agit a priori pas que de ça ....
Merci pour vos lumières !
Partager