首先俩个有什么区别呢?
log.trace("trace: " + exception.getMessage());
log.trace("trace: {}", exception.getMessage());
编译不会有问题,结果也一样
第一個是組合完才傳到method裡面 判斷log level是不是trace層級 然後才打印出來
第二個是先到method裡面判斷 log level是不是trace層級 是的話才組合 並打印出來
第二個通常會比第一個具有較佳的性能
配置文件中是否开启打印对应级别 log 配置
比如 dev 是 error 级别 log
logging:
level:
org.sang: error
if(log.isErrorEnabled()){
log.error("error: {}", "asa");
}
if(log.isTraceEnabled()){
log.trace("trace: {}", "asa");
}
if(log.isInfoEnabled()){
log.info("info: {}", "asa");
}
System.out.println(log.isTraceEnabled() +"_" + log.isInfoEnabled() + "_" + log.isErrorEnabled());
最后输出 error: asa
false_false_true
网友评论