HuB*_*eZa 3 .net lambda logging
在常见的日志记录V2.0中,当LogLevel高于日志条目时,有两种方法可以避免消息评估的成本:
if (Log.IsDebugEnabled)
Log.Debug("Debug message");
Run Code Online (Sandbox Code Playgroud)
要么
Log.Debug(a => a("Debug message"));
Run Code Online (Sandbox Code Playgroud)
哪种做法更好?有什么优点和缺点?
根据文件:
利用lambda,ILog接口提供了一种新的安全的方式来编写日志语句
log.Debug( m=>m("value= {0}", obj.Value) );
Run Code Online (Sandbox Code Playgroud)
这样可以确保仅在启用LogLevel.Debug时评估整个表达式,从而使您不必编写
if (log.IsDebugEnabled)
{
log.Debug("value={0}", obj.Value);
}
Run Code Online (Sandbox Code Playgroud)
避免这种开销.
因此,您的选择中的第二个选项被认为是最佳实践.
| 归档时间: |
|
| 查看次数: |
650 次 |
| 最近记录: |