Обновление: Лучше использовать точку останова IDE, за исключением обнаруженного вами.
В противном случае вы можете установить пользовательский PrintStream
через System.setOut(..)
и там, когда что-то печатается, также печатать Thread.currentThread().getStackTrace()
В идеале ваш PrintStream
должен просто обернуть оригинал System.out
и отправить к нему. Что-то вроде:
public class PrintStreamWrapper extends PrintStream {
public PrintStreamWrapper(OutputStream out) {
super(out);
}
public void println(String x) {
StackTraceElement[] trace = Thread.currentThread().getStackTrace();
// print everything, but not to the System.out,
// because you'll end up in a loop.
super.println(x);
}
}
А затем, в начале вашей программы:
System.setOut(new PrintStreamWrapper(System.out));