PDA

View Full Version : [Java] Numero di riga


spv42
02-05-2007, 15:07
Salve,

Volevo sapere se è possibile a runtime sapere in quale riga mi trovo.
Mi spiego meglio.

Stò implemetando un mio Logger, e non riesco a farmi scrivere il numero di riga di dove loggo nella classe.

Grazie.

andbin
02-05-2007, 15:37
Volevo sapere se è possibile a runtime sapere in quale riga mi trovo.
Mi spiego meglio.Con Java 5 (e 1.4 ma in diverso modo) si può fare sfruttando lo stack trace.

Prova questo:
public class Prova
{
public static void main (String[] args)
{
logTrace ();

logTrace ();
}

public static void logTrace ()
{
StackTraceElement[] ste = Thread.currentThread().getStackTrace();

System.out.println ("Line: " + ste[2].getLineNumber() + " " +
"Class: " + ste[2].getClassName() + " " +
"Method: " + ste[2].getMethodName() + " " +
"File: " + ste[2].getFileName());
}
}Stampa:
Line: 5 Class: Prova Method: main File: Prova.java
Line: 7 Class: Prova Method: main File: Prova.java

spv42
02-05-2007, 15:53
Grazie.

E' proprio quello che volevo sapere. :D

andbin
02-05-2007, 16:19
Grazie.Prego.
Ho aggiornato il codice sopra con un esempio più completo del precedente (che era un po' stupidotto). ;)