Should we use isDebugEnabled() while logging calculated data with Logback?

后端 未结 2 880
孤街浪徒
孤街浪徒 2021-01-28 01:03

Although in some tutorials, for example here (Parametrized logging section), said that Logback message {} parametrization help us to avoid unnecess

2条回答
  •  难免孤独
    2021-01-28 01:58

    When you make a method call, e.g. employeeService.calculateBonus(employee), you're calling that method. Simple as that. So you are calculating the employee bonus every time this line is hit. There is no lazy evaluation here.

    Whether or not to use log.isDebugEnabled() depends on the situation. In this situation, if that method call is expensive, you should wrap that in a debug enabled check.

    In the case of getters, this isn't usually necessary. So, for instance, I would not wrap this in an isDebugEnabled check:

    log.debug("Calculating bonus for employee {} {}", employee.firstName(), employee.lastName());
    

    These are simple getters that return a String, so no expensive calculations are done.

提交回复
热议问题