Для целей ведения журнала
__LINE__
__FILE__
были моими друзьями в C/С++. В Java, чтобы получить эту информацию, мне пришлось выбросить исключение и поймать его. Почему эти старые standbys так игнорируются на современных языках программирования? В их простоте есть что-то волшебное.