Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        /// <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);
        }
Exemple #4
0
        /// <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);
        }