15 октября 2008

Получение в Java коде номер строки и имя выполняемого файла

Во время отладки приложения наиболее часто используется вывод с помощью System.out.println(). Иногда, приходиться добавлять достаточно большое количество таких выводов, что бы понять процесс выполнения приложения и для каждого из выводов надо придумывать свой уникальный текст, что бы потом по тексту найти нужное место в коде.
А что если выводить на экран имя файла, метода и номер строки который в данный момент выполняется. Это автоматически обеспечит уникальные сообщения для каждого вывода System.out ,  а также позволит легко и быстро размножать такие выводы в коде. Вывод будет выглядеть приблизительно так:

System.out.println(getCodePoint());

Но самое интересное будет происходить в методе getCodePoint его можно сделать общим и статическим в каком то классе утилит , содержимое его будет следующим:

public static String getCodePoint() {
    StackTraceElement ste = Thread.currentThread().getStackTrace()[2];
    return ste.getFileName() + ":" +
           ste.getClassName() + ":" +
           ste.getMethodName() + ":" + 
           ste.getLineNumber();
}


Магия и ничего более :).

Комментариев нет: