如果我在启用跟踪的情况下打印大量数据,那么我应该使用isTraceEnabled
还是只执行我的log.trace("{} mymessage", "param")
在这种情况下,使用isTraceEnabled
或没有任何好处会有任何好处吗?
答案 0 :(得分:5)
这取决于"param"
实际上是什么。如果它是一个复杂的表达式,最好使用isTraceEnabled
。如果它只是对象的引用,则可以直接使用它。只有在启用跟踪时才会调用其toString
方法。
如果连续有多个跟踪语句,则使用isTraceEnabled
也很有用。你可以将它们放在同一个if
中。
答案 1 :(得分:1)
虽然Henry的答案是正确的,但我想补充一点,trace
无论如何都必须有效地调用isTraceEnabled
,所以当isTraceEnabled
调用trace
时实际上存在(非常小的)缺点不是有用(即您不需要通过非平凡的表达式构造参数,并且只有一个{{1}}调用)。