什么时候应该使用 Throwable.printStackTrace()
打印错误,而不是使用 log4j 方法 error(String, Throwable)
?
差异在哪里,共同点是什么?
//干杯
最佳答案
Throwable.printStackTrace()将堆栈跟踪打印到标准错误,而 log4j 方法会将其打印在您喜欢的位置。您可以通过log4j configuration file指定何时以及如何打印堆栈跟踪。 .
第二种方法是最好的方法,因为您始终可以决定将错误写入标准错误,同时也可以将其打印在滚动文件中。 您的缺点是您的项目中需要 log4j 依赖项,但也有一些解决方案可以在不声明此依赖项的情况下使用 log4j 并仅在运行时提供它。
编辑:常见用途是使用 log4j api 在代码中写入日志,并在部署应用程序的位置配置 log4j。 另一种方法是使用 java.util.logging 编写它们以避免任何直接依赖,您可以使用 slf4j用于从您和第 3 方代码捕获任何日志并将其传送到您喜欢的日志记录 API(即 log4j)的桥梁
关于java - 我什么时候应该使用 error.printStrackTrace() 而不是 log4.j.error(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10535854/