gmn*_*gmn 3 .net c# console miniprofiler
在控制台应用程序中使用迷你分析器时,是否有可能获得与在 Web 应用程序中获得的相同级别的信息?理想情况下,我只想在控制台中自行托管 Web UI,但看起来这是不可能的。
我的主要目标是获取在调用时执行的 sqlqueries 及其参数/运行时间。我已经尝试过 RenderPlainText() 解决方案,它远没有 webview 那么详细,而且似乎没有一个钩子可以用来在发生有趣的事情时记录其内容。
由于人们似乎都想要各种复杂的数据,因此没有一种内置方法可以获取分析器的成熟的基于文本的输出(RenderPlainText()盒子里有)。但有几个选择!你可以:
profiler.GetTimingHierarchy()将它们全部作为列表,例如:var profiler = MiniProfiler.StartNew();
using (profiler.Step("MyStep"))
using (profiler.CustomTiming("sql", "Select *"))
{
// Stuff
}
profiler.Stop();
foreach (var timing in profiler.GetTimingHierarchy())
{
if (timing.HasCustomTimings)
{
foreach (var timingType in timing.CustomTimings)
{
Console.WriteLine(timingType.Key + " queries:");
foreach (var queryTiming in timingType.Value)
{
Console.WriteLine($" {queryTiming.DurationMilliseconds} ms - {queryTiming.CommandString}");
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这会产生:
sql queries:
0.9 ms - Select *
Run Code Online (Sandbox Code Playgroud)
.UserIdProvideron 选项(默认为 Web 端的 IP 地址)。例如,在 ASP.NET Core 中:sql queries:
0.9 ms - Select *
Run Code Online (Sandbox Code Playgroud)
使用第二个选项时,请注意,如果您从 MiniProfiler Web UI 中单击“共享”,URL 是一致的,唯一改变的是 GUID。您可以获取电流profiler.Id并使用它来生成指向控制台的便捷链接。
| 归档时间: |
|
| 查看次数: |
300 次 |
| 最近记录: |