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