我在我的F#代码中有很多日志记录,类似于以下内容:
logger.Log (sprintf "%A" (this.GetSomething parameters))
这一切都很好,但即使使用NullLogger,在大量sprintf调用的情况下性能仍然较低。日志调用的字符串参数完全形成,然后在Log函数内部结尾处被忽略。
有没有一个好方法彻底关闭日志记录?当然,我可以使用预处理器指令(F#中是否有这样的东西?)或以某种方式使用'if flag then ....',但我想知道是否有一种F#魔法可以很好地为我完成它?
Log
方法本身接受格式字符串和所有参数。 - Fyodor Soikin