NLog 参数替换

NLog argument substitution

Logger.Trace("expensive message:{0}",calcResult());

即使日志记录级别高于 Trace,也会执行方法 calcResult()。 best/most 避免调用方法的优雅方法是什么?

谢谢 (使用 NLog 4.4.12)

也许是这样的:

Logger.Trace("expensive message:{0}", () => calcResult());

或者像这样:

if (Logger.IsTraceEnabled)
    Logger.Trace("expensive message:{0}", calcResult());