Java有没有办法获得当前的文件名和行号? 在C++中,源代码和当前行数的文件由文件和内联< /强>决定,在编译时决定,java中有没有方法可以做类似的事情?文件和行号是在编译时而不是运行时决定的?这将便于记录。我有点怀疑使用运行时方法检测这些信息会降低性能。
您可以使用Java有没有办法获得当前的文件名和行号? 在C++中,源代码和当前行数的文件由文件和内联< /强>决定,在编译时决定,java中有没有方法可以做类似的事情?文件和行号是在编译时而不是运行时决定的?这将便于记录。我有点怀疑使用运行时方法检测这些信息会降低性能。,java,file,logging,Java,File,Logging,您可以使用 System.out.println(Thread.currentThread().getStackTrace()[1]); 输出包括当前方法和行号(如果调试是在中编译的)。 比如说, com.stackoverflow.Main.main(Main.java:23) 可能重复的Take at at using services,它允许您以日志格式指定文件和行号(以及其他信息),这些文件和行号可以打印到屏幕上或写入文件。William Price,感谢您提供的信息,非常有用New
System.out.println(Thread.currentThread().getStackTrace()[1]);
输出包括当前方法和行号(如果调试是在中编译的)。
比如说,
com.stackoverflow.Main.main(Main.java:23)
可能重复的Take at at using services,它允许您以日志格式指定文件和行号(以及其他信息),这些文件和行号可以打印到屏幕上或写入文件。William Price,感谢您提供的信息,非常有用New Throwable().getStackTrace()这不是一个昂贵的操作吗?@dkatzel这是一种获取当前文件名和行号的方法;我不是说它的“效率.系统.输出.打印LN(Thread.currentThread().getStackTrace()[1]);我已经测试过了,它似乎会扫描调用堆栈,但性能不如我预期的好