Java 仅在调试模式下可抛出日志

Java log throwable only in debug mode

我只想在日志级别处于调试模式时使用throwable生成日志。

我的方法是

try {
    // ...
} catch (Exception e){
    if(logger.isDebugEnabled()){
        logger.warn("ERR Occurs", e);
    } else {
        logger.warn("ERR Occurs");
    }
}

但是很难更改我所有的代码并且很难一眼看到代码

还有其他选择吗?

有一个更简单的一行相当于你自己的:

logger.warn("ERR Occurs", logger.isDebugEnabled() ? e : null);

如果不想覆盖日志记录,您可以考虑将三元运算符打包为简单的静态方法logEx(e)class。

但是:隐藏异常不是一个好主意 - 特别是在不处于调试模式时,因此您最好解决导致异常的条件并将日志记录保留为:

logger.warn("ERR Occurs", e);