Example #1
0
        public void CreateApiCallEntryTest()
        {
            ApiCallEntity entry = new ApiCallEntity()
            {
                AccessToken  = "accesstoken",
                CallClientId = 10,
                CallUrl      = "/login",
                ClientId     = 7,
                LogType      = "api",
                UserId       = 13123
            };

            Assert.AreEqual(entry.CallClientId, 10);
        }
Example #2
0
        /// <summary>
        /// 添加API调用日志
        /// </summary>
        /// <param name="callUrl">被调用API的地址</param>
        /// <param name="statusCode">调用结果状态码</param>
        /// <param name="callAppAccesstoken">调用接口的APP的AccessToken</param>
        /// <param name="requestSize">请求大小</param>
        /// <param name="responseTime">接口请求耗时</param>
        /// <param name="responseSize">接口请求大小</param>
        internal void AppendApiCall(string accesstoken, string callAccesstoken, int callAppId,
                                    string callUrl, int statusCode,
                                    long responseTime = 0, long requestSize = 0, long responseSize = 0)
        {
            try
            {
                ApiCallEntity entry = new ApiCallEntity
                {
                    AccessToken = accesstoken,
                    //这里做一个修改, 如果通过上面的方式都无法获取,则只使用AccessToken
                    CallAccessToken = String.IsNullOrEmpty(callAccesstoken) ?
                                      accesstoken : callAccesstoken,
                    CallAppId    = callAppId,
                    CallUrl      = callUrl,
                    StatusCode   = statusCode,
                    RequestSize  = requestSize,
                    ResponseSize = responseSize,
                    ResponseTime = responseTime,
                    TerminalCode = 1001
                };

                if (isDebug)
                {
                    GathererLogger.Instance.Write(String.Format("(API_CALL)Token:{0},CallAppId:{1},CallAccessToken:{2},CallUrl:{3},CallTimestamp:{4},IpAddress:{5}",
                                                                accesstoken, entry.CallAppId,
                                                                entry.CallAccessToken, callUrl,
                                                                entry.CallTimestamp.ToString(),
                                                                entry.IpAddress));
                }
                LogSender.Append(entry);
            }
            catch (Exception ex)
            {
                if (isDebug)
                {
                    GathererLogger.Instance.Write(String.Format("(API_CALL)Exception Occour! CallUrl:{0}, Message: {1}, Call Stack:{2}", callUrl, ex.Message, ex.StackTrace));
                    if (HttpContext.Current != null)
                    {
                        String queryString = String.Empty;
                        foreach (string key in HttpContext.Current.Request.QueryString.AllKeys)
                        {
                            queryString += String.Format("{0}={1}&", key, HttpContext.Current.Request.QueryString[key]);
                        }
                        GathererLogger.Instance.Write(String.Format("QueryString:{0}", queryString));
                    }
                }
            }
        }
Example #3
0
        public void CsvSerializerSingleTest()
        {
            ApiCallEntity entry = new ApiCallEntity()
            {
                AccessToken  = "accesstoken",
                CallClientId = 10,
                CallUrl      = "/login",
                ClientId     = 7,
                LogType      = "api",
                UserId       = 13123
            };
            CsvSerializer serializer = new CsvSerializer();
            string        result     = serializer.SerializeSingle <ApiCallEntity>(entry);

            System.Diagnostics.Debug.WriteLine(result);
            Assert.IsNotNull(result);
        }