线上日志文本内容示例:
{"Id":"ff6cbd5b-d0ee-4edd-8251-5883134bbcbb","Name":"dianping/ExportExcel","Started":"2017-08-24 08:07:34","DurationMilliseconds":988683.0,"MachineName":"NET-MAG1","CustomLinks":null,"Root":{"Id":"6415d1db-d958-47e2-b02a-f7e829c99368","Name":"/ota/dianping/ExportExcel&&traceguid=baacf36b-b386-46d5-a491-f1aa05b2b9be","DurationMilliseconds":988683.0,"StartMilliseconds":0.0,"Children":[{"Id":"2c69b997-48bd-4ab6-a5fc-3937c72c24d9","Name":"BeginRequest","DurationMilliseconds":0.0,"StartMilliseconds":0.0,"Children":null,"CustomTimings":null},{"Id":"e38a16fe-30f0-488e-8b11-653cdbeec84b","Name":"T FromJsonTo#T(string jsonString)","DurationMilliseconds":0.0,"StartMilliseconds":1.0,"Children":null,"CustomTimings":null},{"Id":"22d5db87-25d6-49d1-bf42-05bab56cabf1","Name":"get appsetting key:SSO_SendRequest_Minutes","DurationMilliseconds":0.0,"StartMilliseconds":1.2,"Children":null,"CustomTimings":null},{"Id":"12ba90f5-eb47-4599-aef6-34d7466ef3b6","Name":"#164 Application_PostAuthenticateRequest","DurationMilliseconds":0.0,"StartMilliseconds":1.7,"Children":null,"CustomTimings":null},{"Id":"7754c112-706e-4679-b8a3-1c3bc1d7d931","Name":"#164 Application_AuthorizeRequest","DurationMilliseconds":0.0,"StartMilliseconds":1.8,"Children":null,"CustomTimings":null},{"Id":"ed91655f-8ceb-4e84-a5c9-65b9dc74029a","Name":"#164 Application_PostAuthorizeRequest","DurationMilliseconds":0.0,"StartMilliseconds":1.8,"Children":null,"CustomTimings":null},{"Id":"6a975156-fa5d-4c27-bd65-4ca98f0c1b33","Name":"#164 Application_ResolveRequestCache","DurationMilliseconds":0.0,"StartMilliseconds":1.9,"Children":null,"CustomTimings":null},{"Id":"65e4e3f4-4b15-477c-a813-e6797c26169b","Name":"#164 Application_PostResolveRequestCache","DurationMilliseconds":0.0,"StartMilliseconds":2.2,"Children":null,"CustomTimings":null},{"Id":"d43a4cd7-71e9-416c-a73a-9db845e7671f","Name":"#164 Application_MapRequestHandler","DurationMilliseconds":0.0,"StartMilliseconds":2.2,"Children":null,"CustomTimings":null},{"Id":"dd04a246-ebb3-4054-9e4e-467346ee5fd2","Name":"#164 Application_PostMapRequestHandler","DurationMilliseconds":0.0,"StartMilliseconds":2.3,"Children":null,"CustomTimings":null},{"Id":"8bb20b5d-ad42-4f1d-8a93-1c00f25c67ba","Name":"GetCache(string key):CacheSession_kcb3o05sms552sgfmwbtqbek","DurationMilliseconds":0.3,"StartMilliseconds":2.3,"Children":null,"CustomTimings":null},{"Id":"7fde510e-c819-4863-a2f1-b72842e9a094","Name":"#164 Application_AcquireRequestState","DurationMilliseconds":0.0,"StartMilliseconds":2.9,"Children":null,"CustomTimings":null},{"Id":"11cbd319-07eb-42ce-bdd6-24516ed6ed19","Name":"#164 Application_PostAcquireRequestState","DurationMilliseconds":0.0,"StartMilliseconds":2.9,"Children":null,"CustomTimings":null},{"Id":"3d05aecb-9b76-4ffc-9c8a-ea15c55a4aac","Name":"#164 Application_PreRequestHandlerExecute","DurationMilliseconds":0.0,"StartMilliseconds":2.9,"Children":null,"CustomTimings":null},{"Id":"bc8e6fd1-a8c3-408d-9513-568a51976c46","Name":"MEF_GetService, Kulv.YCF.AdminWeb.Areas.OTA.Controllers.DianPingController","DurationMilliseconds":1.2,"StartMilliseconds":3.2,"Children":null,"CustomTimings":null},{"Id":"3283bbf3-a67a-4385-b478-36b7bc8b9dfb","Name":"MEF_GetService, System.Web.Mvc.FilterAttribute[]","DurationMilliseconds":0.2,"StartMilliseconds":4.5,"Children":null,"CustomTimings":null},{"Id":"78d60a54-0455-4063-990d-4acace9a4e3d","Name":"MEF_GetService, System.Web.Mvc.FilterAttribute[]","DurationMilliseconds":0.1,"StartMilliseconds":4.8,"Children":null,"CustomTimings":null},{"Id":"9c5d1d97-4ebe-435a-abdc-0a55f43b48ce","Name":"MEF_GetService, System.Web.Mvc.FilterAttribute[]","DurationMilliseconds":0.1,"StartMilliseconds":5.1,"Children":null,"CustomTimings":null},{"Id":"39aab91d-ecfb-4fe8-9971-1b2bc06c70f7","Name":"MEF_GetService, Kulv.YCF.Web.BLL.Account.IAccountContract","DurationMilliseconds":0.0,"StartMilliseconds":5.2,"Children":null,"CustomTimings":null},{"Id":"0ace486b-7dd7-4db0-a8fe-5cd36b59eea9","Name":"get appsetting key:B2BURLWhiteList","DurationMilliseconds":0.0,"StartMilliseconds":5.3,"Children":null,"CustomTimings":null},{"Id":"839befae-3ae9-40e4-bf64-b2cc28c2d7b7","Name":"MEF_GetService, System.Int32","DurationMilliseconds":0.0,"StartMilliseconds":5.4,"Children":null,"CustomTimings":null},{"Id":"5356ed25-ba66-453e-ae53-2d911de881a0","Name":"#164 Application_PreSendRequestContent","DurationMilliseconds":0.0,"StartMilliseconds":988628.2,"Children":null,"CustomTimings":null},{"Id":"61f7a187-c5ec-4387-9fa4-868e24454440","Name":"#164 Application_PreSendRequestHeaders","DurationMilliseconds":0.0,"StartMilliseconds":988628.2,"Children":null,"CustomTimings":null},{"Id":"14e07fea-4503-4d4e-9040-a2529a45cdf9","Name":"#164 Application_LogRequest","DurationMilliseconds":0.0,"StartMilliseconds":988682.8,"Children":null,"CustomTimings":null},{"Id":"4291de5c-9e90-47de-8834-08578158c758","Name":"#164 Application_PostLogRequest","DurationMilliseconds":0.0,"StartMilliseconds":988682.8,"Children":null,"CustomTimings":null},{"Id":"c64ada7a-d1ec-452c-a61d-81a29752c2f4","Name":"EndRequest","DurationMilliseconds":0.0,"StartMilliseconds":988683.0,"Children":null,"CustomTimings":null}],"CustomTimings":{"sql":[{"Id":"ebfd2eb1-51d8-4707-a842-9f203d8fe994","CommandString":"/* at Kulv.YCF.Core.DCPModule.DCPCooperatorItemCore.Impl.TPCooperatorGoodsService.GetOTAExportData(Int32 channelId, Int32 liuliangId)*/
SELECT
[Extent1].[ChannelLinkId] AS [ChannelLinkId],
[Extent1].[OuterTitle] AS [OuterTitle],
[Extent1].[StartDate] AS [StartDate],
[Extent1].[EndDate] AS [EndDate],
[Extent4].[PackageName] AS [PackageName],
[Extent4].[ProductPackageId] AS [ProductPackageId],
[Extent7].[ProductName] AS [ProductName],
[Extent7].[ProductId] AS [ProductId],
[Extent2].[GoodsStatus] AS [GoodsStatus],
[Extent9].[UserName] AS [UserName],
[Extent9].[CellPhone] AS [CellPhone],
[Extent9].[LoginId] AS [LoginId],
[Extent8].[ProvinceName] AS [ProvinceName]
FROM [dbo].[ChannelLink] AS [Extent1] WITH(NOLOCK)
LEFT OUTER JOIN [dbo].[TPGoodsMapping] AS [Extent2] WITH(NOLOCK) ON [Extent1].[ChannelLinkId] = [Extent2].[ChannelLinkId]
INNER JOIN [dbo].[ChannelPackageMapping] AS [Extent3] WITH(NOLOCK) ON [Extent1].[ChannelLinkId] = [Extent3].[ChannelLinkId]
INNER JOIN [dbo].[ProductPackage] AS [Extent4] WITH(NOLOCK) ON [Extent3].[ProductPackageId] = [Extent4].[ProductPackageId]
INNER JOIN [dbo].[PackageItem] AS [Extent5] WITH(NOLOCK) ON [Extent4].[ProductPackageId] = [Extent5].[ProductPackageId]
INNER JOIN [dbo].[ProductItem] AS [Extent6] WITH(NOLOCK) ON [Extent5].[ItemId] = [Extent6].[ItemId]
INNER JOIN [dbo].[Product] AS [Extent7] WITH(NOLOCK) ON [Extent6].[ProductId] = [Extent7].[ProductId]
INNER JOIN [dbo].[Province] AS [Extent8] WITH(NOLOCK) ON [Extent7].[ProvinceId] = [Extent8].[ProvinceId]
INNER JOIN [dbo].[SysUser] AS [Extent9] WITH(NOLOCK) ON [Extent1].[LiuLiangId] = [Extent9].[LoginId]
WHERE [Extent1].[ChannelId] = @p__linq__0","ExecuteType":"Reader","StackTraceSnippet":"GetOTAExportData ExportExcel","StartMilliseconds":90.1,"DurationMilliseconds":3812.3,"FirstFetchDurationMilliseconds":1494.9}]}},"ClientTimings":null,"User":"10.13.2.186 - 10.205.0.254","HasUserViewed":false}这内容是文本文件无格式的,人眼看起来不容易分析。
下面来做一个测试站点显示日志:
使用方法参考官方站点: http://miniprofiler.com/
1、这边先建立一个.Net MVC,.NETFramework,Version=v4.5.2解决方案:ShowMiniProfiler
2、依次安装包:
Install-Package MiniProfiler Install-Package MiniProfiler.EF6 Install-Package MiniProfiler.MVC4
3、找个miniprofiler-includes.js:http://cdn01.pukuimin.top/Scripts/miniprofiler-includes.js ,放到 Scripts目录中。
4、改web.config:
<system.webServer> <handlers> <add name="MiniProfiler" path="mini-profiler-resources/*" verb="*" type="System.Web.Routing.UrlRoutingModule" resourceType="Unspecified" preCondition="integratedMode" /> </handlers> </system.webServer>
5、改Global.asax
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
MiniProfilerEF6.Initialize();
}
protected void Application_BeginRequest()
{
//if (Request.IsLocal)
{
MiniProfiler.Start();
}
}
protected void Application_EndRequest()
{
MiniProfiler.Stop();
}6、然后建立一个页面显示就行了,Index.cshtml:
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title></title>
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/modernizr-2.6.2.js"></script>
<script src="~/Scripts/bootstrap.min.js"></script>
<link href="~/Content/bootstrap.min.css" rel="stylesheet" />
<link href="~/mini-profiler-resources/includes.css" rel="stylesheet" />
<script type="text/javascript">
var profiler = { "Id": "851ecefb-7f8d-445d-ae92-3bd5f37a39f4", "Name": null, "Started": "2017-08-28T06:45:47.0427279Z", "DurationMilliseconds": 0.0, "MachineName": "test", "CustomLinks": null, "Root": { "Id": "1647b9b8-1b5c-4d19-b143-38d5beff71e7", "Name": "showminiprofiler", "DurationMilliseconds": null, "StartMilliseconds": 0.0, "Children": null, "CustomTimings": null }, "ClientTimings": null, "User": "121.33.210.162", "HasUserViewed": false&