我一直在努力让MiniProfiler.AspNetCore与Serilog.AspNetCore一起使用,或以其他方式记录电话。
我尝试使用.append(word.strip())?
调用
EndInvoke
我正在尝试将其设置为https://daveaglick.com/posts/easy-performance-and-query-logging-in-aspnet-with-serilog-and-miniprofiler类似于使用3.0而不是4.0版本的MiniProfiler,以及aspnet而不是aspnetcore。
编辑:修复了空问题,我在miniprofiler中间件之前创建了我的中间件,但它仍未正确登录到serilog / seq。
答案 0 :(得分:2)
看起来问题的一部分是我缺少
在destructureObjects: true
电话结束时 ForContext()
private void EndInvoke(HttpContext context)
{
MiniProfiler.Current.Stop();
if (MiniProfiler.Current != null)
{
Log.ForContext("MiniProfiler", JsonConvert.DeserializeObject<object>(MiniProfiler.Current.ToJson()), destructureObjects: true)
.Debug("Completed request in {Timing} ms", MiniProfiler.Current.DurationMilliseconds);
}
}
主要原因是......我正在过滤掉发送到我的seq服务器的详细调用...将其更改为调试使它们立即显示出来。
所以希望这个问题可能在将来帮助其他人,但这适用于MiniProfiler 4
和AspNetCore 2
。您需要Destructurama.JsonNet
并在.Destructure.JsonNetTypes()
上添加LoggerConfiguration()
,否则您只会在输出中获得空白项目。