Numéro de lignes - Galère [résolu]

Numéro de lignes - Galère [résolu] - Java - Programmation

Marsh Posté le 22-10-2008 à 17:50:13    

Bonjour,
j'aimerai savoir comment je pourrais récupérer le numéro de ligne sur laquelle se trouve ma ligne de code comme pour un système de Log par exemple mais sans utiliser les systèmes du genre Log4J etc...
 
Je m'explique : j'aimerai par exemple avoir une fonction getNumeroLigne() qui me renverrai le numéro de ligne où est positionné l'appel de la fonction dans ma classe.
 
L1- String message = "Mon message : ";
L2- //Affichage du message
L3- System.out.println(Message+getNumeroLigne());
 
Cela m'afficherait : Mon message : 3
 
Merci de m'aider ou de me donner d'autres solutions qui me feraient avancer
 
Peut être une piste pour une éventuelle solution mais je ne sais pas du tout comment la mettre en œuvre :
http://weblogs.java.net/blog/zarar [...] aky_l.html
 
Amicalement,


Message édité par loofy le 23-10-2008 à 10:58:33
Reply

Marsh Posté le 22-10-2008 à 17:50:13   

Reply

Marsh Posté le 22-10-2008 à 18:38:38    

t'as essayé de regarder comment log4J faisait justement ?


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 23-10-2008 à 10:54:40    

Bon une personne m'a trouvé une solution qui me convient pas mal : Je vous la donne comme on me l'a donné si ça peut aider quelqu'un un jour :
    Tu peux récupérer cette info (et d'autres) via le stacktrace :
Code :
 
 public static int getNumeroLigne() {
  StackTraceElement[] stack = new Throwable().getStackTrace();
  return stack[1].getLineNumber();
 }
 
Attention toutefois :
 
    * La génération du stack est coûteuse. Il est donc préférable de ne pas trop en abuser...
    * Cette information n'est pas forcément disponible (dans ce cas tu obtiendras -1) selon le type de compilation (l'option -g:none de javac supprime toutes les infos de debug)
 
Merci à adiGuba.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed