C# Serilog destructuring operator-是否在日志级别检查之前对其进行分解
我试图理解serilog destructuring操作符对性能的影响,特别是在记录器检查是否可以记录预期消息之前,验证是否没有执行destructure。例如,以下代码:C# Serilog destructuring operator-是否在日志级别检查之前对其进行分解,c#,.net,serilog,C#,.net,Serilog,我试图理解serilog destructuring操作符对性能的影响,特别是在记录器检查是否可以记录预期消息之前,验证是否没有执行destructure。例如,以下代码: var sensorInput = new { Latitude = 25, Longitude = 134 }; Log.Debug("Processing {@SensorInput}", sensorInput); 不应导致以下情况: var tmp = destructure(sensorInput); read
var sensorInput = new { Latitude = 25, Longitude = 134 };
Log.Debug("Processing {@SensorInput}", sensorInput);
不应导致以下情况:
var tmp = destructure(sensorInput);
readonly bool _isDebug = Log.IsEnabled(LogEventLevel.Debug);
if (_isDebug) Log.Debug("Processing {var1}", tmp);
我确实检查了Serilog源代码,但我没有发现任何可以证实上述情况没有发生的东西-也许有人知道相关代码?Serilog只会在事件启用时应用解构
Debug()
调用Write()
,这将导致