/// <summary> /// 此方法为SOA代理类专用,用于记录SOA请求过程中关键步骤的时长日志。 /// </summary> /// <param name="title">[appid].请求的接口方法名称</param> /// <param name="requestType">完整的RequestType</param> /// <param name="status">接口返回类型</param> /// <param name="startTime">发起请求的时间,请使用DateTime.Now.Ticks获取</param> /// <param name="requestXMLSerializeEndTime">requestXML序列话完毕时间,请使用DateTime.Now.Ticks获取</param> /// <param name="requestEndTime">SOA响应完毕时间,请使用DateTime.Now.Ticks获取</param> /// <param name="responseDeSerializeEndTime">responseXML序列话完毕时间,请使用DateTime.Now.Ticks获取</param> /// <param name="endTime">请求完毕时间,请使用DateTime.Now.Ticks获取</param> /// <param name="groupid">每一次接口调用(包含步骤和详细日志),请使用同一个GUID</param> public static void LOGCallService(string title, string requestType, CallServiceStatus status, long startTime, long requestXMLSerializeEndTime, long requestEndTime, long responseDeSerializeEndTime, long endTime, string groupid) { Dictionary <string, string> addInfo = new Dictionary <string, string>(); addInfo.Add("SubType", "INFOCallService"); addInfo.Add("SubName", requestType); addInfo.Add("Status", status.ToString()); addInfo.Add("GroupID", groupid); // 记录接口请求步骤中各关键点的响应时长 StringBuilder message = new StringBuilder(); message.Append("请求发起时间:").Append((new DateTime(startTime)).ToString("HH:mm:ss.fff")) .Append("RequestXML序列化完毕时间: +").Append((requestXMLSerializeEndTime - startTime) / 10000).Append("毫秒") .Append("服务器应答完毕时间: +").Append((requestEndTime - startTime) / 10000).Append("毫秒") .Append("ResponseXML序列化完毕时间: +").Append((responseDeSerializeEndTime - startTime) / 10000).Append("毫秒") .Append("请求结束时间: +").Append((endTime - startTime) / 10000).Append("毫秒"); message.Append("\n\n时间源记录:\n") .Append(startTime) .Append("|").Append(requestXMLSerializeEndTime) .Append("|").Append(requestEndTime) .Append("|").Append(responseDeSerializeEndTime) .Append("|").Append(endTime); WriteTrace(title, message.ToString()); //Log(GlobalAppLogType.LOGCallServiceDetail, title, null, message.ToString(), addInfo); }
/// <summary> /// 记录一条接口请求详细日志 /// **注意!此方法只有在Cookie中CentralLogSwitchStatus有值,且为true时,才会起作用** /// </summary> /// <param name="title">[appid].请求的接口方法名称</param> /// <param name="message">RequestXML:+\n+请求报文+\n+\n+ResponseXML:+\n+返回报文</param> /// <param name="requestType">完整的RequestType.Name</param> /// <param name="status">接口返回类型</param> /// <param name="groupid">每一次接口调用(包含步骤和详细日志),请使用同一个GUID</param> public static void LOGCallServiceDetail(string title, string message, string requestType, CallServiceStatus status, string groupid) { Dictionary <string, string> addInfo = new Dictionary <string, string>(); addInfo.Add("SubType", "INFOCallServiceDetail"); addInfo.Add("SubName", requestType); addInfo.Add("Status", status.ToString()); addInfo.Add("GroupID", groupid); if (status != CallServiceStatus.Success && status != CallServiceStatus.None) { string tracingErrorFlagValue = GetTracingErrorFlagValue(); addInfo.Add("ErrorFlag", tracingErrorFlagValue); CookieManage.WriteTracingErrorFlag(tracingErrorFlagValue, 1); } Log(GlobalAppLogType.LOGCallServiceDetail, title, null, message, addInfo); }
/// <summary> /// 记录一条接口请求详细日志 /// **注意!此方法只有在Cookie中CentralLogSwitchStatus有值,且为true时,才会起作用** /// </summary> /// <param name="title">[appid].请求的接口方法名称</param> /// <param name="message">RequestXML:+\n+请求报文+\n+\n+ResponseXML:+\n+返回报文</param> /// <param name="requestType">完整的RequestType.Name</param> /// <param name="status">接口返回类型</param> /// <param name="groupid">每一次接口调用(包含步骤和详细日志),请使用同一个GUID</param> public static void LOGCallServiceDetail(string title, string message, string requestType, CallServiceStatus status, string groupid) { Dictionary<string, string> addInfo = new Dictionary<string, string>(); addInfo.Add("SubType", "INFOCallServiceDetail"); addInfo.Add("SubName", requestType); addInfo.Add("Status", status.ToString()); addInfo.Add("GroupID", groupid); if (status != CallServiceStatus.Success && status != CallServiceStatus.None) { string tracingErrorFlagValue = GetTracingErrorFlagValue(); addInfo.Add("ErrorFlag", tracingErrorFlagValue); CookieManage.WriteTracingErrorFlag(tracingErrorFlagValue, 1); } Log(GlobalAppLogType.LOGCallServiceDetail, title, null, message, addInfo); }
/// <summary> /// 此方法为SOA代理类专用,用于记录SOA请求过程中关键步骤的时长日志。 /// </summary> /// <param name="title">[appid].请求的接口方法名称</param> /// <param name="requestType">完整的RequestType</param> /// <param name="status">接口返回类型</param> /// <param name="startTime">发起请求的时间,请使用DateTime.Now.Ticks获取</param> /// <param name="requestXMLSerializeEndTime">requestXML序列话完毕时间,请使用DateTime.Now.Ticks获取</param> /// <param name="requestEndTime">SOA响应完毕时间,请使用DateTime.Now.Ticks获取</param> /// <param name="responseDeSerializeEndTime">responseXML序列话完毕时间,请使用DateTime.Now.Ticks获取</param> /// <param name="endTime">请求完毕时间,请使用DateTime.Now.Ticks获取</param> /// <param name="groupid">每一次接口调用(包含步骤和详细日志),请使用同一个GUID</param> public static void LOGCallService(string title, string requestType, CallServiceStatus status, long startTime, long requestXMLSerializeEndTime, long requestEndTime, long responseDeSerializeEndTime, long endTime, string groupid) { Dictionary<string, string> addInfo = new Dictionary<string, string>(); addInfo.Add("SubType", "INFOCallService"); addInfo.Add("SubName", requestType); addInfo.Add("Status", status.ToString()); addInfo.Add("GroupID", groupid); // 记录接口请求步骤中各关键点的响应时长 StringBuilder message = new StringBuilder(); message.Append("请求发起时间:").Append((new DateTime(startTime)).ToString("HH:mm:ss.fff")) .Append("RequestXML序列化完毕时间: +").Append((requestXMLSerializeEndTime - startTime) / 10000).Append("毫秒") .Append("服务器应答完毕时间: +").Append((requestEndTime - startTime) / 10000).Append("毫秒") .Append("ResponseXML序列化完毕时间: +").Append((responseDeSerializeEndTime - startTime) / 10000).Append("毫秒") .Append("请求结束时间: +").Append((endTime - startTime) / 10000).Append("毫秒"); message.Append("\n\n时间源记录:\n") .Append(startTime) .Append("|").Append(requestXMLSerializeEndTime) .Append("|").Append(requestEndTime) .Append("|").Append(responseDeSerializeEndTime) .Append("|").Append(endTime); Log(GlobalAppLogType.LOGCallServiceDetail, title, null, message.ToString(), addInfo); }