如何记录 sql 异常?

How to log a sql exception?

我正在尝试以下面的方式记录堆栈跟踪,它工作正常,但我想弄清楚是否还有其他有效的方法来记录异常?

 catch (SQLException e) {
                LOG.error(
                          "Sql Exception: "  
                                   + e.getStackTrace()[1].getClassName() + "." 
                                   + e.getStackTrace()[1].getMethodName(), e);
                throw e;

是:

LOG.error("Sql Exception", e);

注意第二个参数e。当 Exception/Throwable 像这样传入时,记录器会包含堆栈跟踪。无需手动(笨拙地)使用 e.getStackTrace()

您不需要在代码中使用 + e.getStackTrace()[1].getClassName() + "." + e.getStackTrace()[1].getMethodName(),此信息由记录器本身使用异常堆栈跟踪生成。