Example #1
0
        /// <summary>
        /// 获取所有调试日志(分页)
        /// </summary>
        /// <param name="request">查询条件</param>
        /// <param name="page"></param>
        /// <param name="rows"></param>
        /// <returns></returns>
        public ActionResult GetPagingDebugLogs(GetPagingDebugLogsRequest request, int page, int rows)
        {
            var result = string.Empty;

            if (request == null)
            {
                request = new GetPagingDebugLogsRequest();
            }
            request.PageIndex = page;
            request.PageSize  = rows;

            var rs = _debugLogService.GetPagingDebugLogs(request);

            if (rs.ReturnCode == ReturnCodeType.Success)
            {
                result = "{\"total\": " + rs.Content.TotalCount + ",\"rows\":" + rs.Content.Entities.ToJson(dateTimeFormat: "yyyy-MM-dd HH:mm:ss.fff") + "}";
            }

            return(Content(result));
        }
Example #2
0
        /// <summary>
        /// 获取所有调试日志(分页)
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public ServiceResult <PagingResult <GetPagingDebugLogsResponse> > GetPagingDebugLogs(GetPagingDebugLogsRequest request)
        {
            var result = new ServiceResult <PagingResult <GetPagingDebugLogsResponse> >
            {
                ReturnCode = ReturnCodeType.Error,
                Content    = new PagingResult <GetPagingDebugLogsResponse>()
            };

            //处理详情页面url
            var logSiteUrl = Log.Common.Helper.ConfigHelper.LogSite;
            var rs         = _debugLogDao.GetPagingDebugLogs(request);

            if (rs != null && rs.Entities.HasValue())
            {
                var debugLogs = rs.Entities;
                foreach (var item in debugLogs)
                {
                    item.DetailUrl = string.Format("{0}DebugLog/Detail/{1}", logSiteUrl, item.Id);

                    //处理message
                    if (item.Message != null && item.Message.Length > 0)
                    {
                        try
                        {
                            item.MessageDetail = item.Message.LZ4Decompress();
                        }
                        catch
                        {
                        }
                    }
                }
            }

            result.ReturnCode = ReturnCodeType.Success;
            result.Content    = rs;

            return(result);
        }
Example #3
0
        /// <summary>
        /// 获取所有调试日志(分页)
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public PagingResult <GetPagingDebugLogsResponse> GetPagingDebugLogs(GetPagingDebugLogsRequest request)
        {
            PagingResult <GetPagingDebugLogsResponse> result = null;
            var totalCount = 0;
            var startIndex = (request.PageIndex - 1) * request.PageSize + 1;
            var endIndex   = request.PageIndex * request.PageSize;

            //按条件查询,构造where
            //使用DynamicParameters
            var p           = new DynamicParameters();
            var sbSqlPaging = new StringBuilder(@"SELECT  ROW_NUMBER() OVER ( ORDER BY debugLogs.id DESC ) AS RowNum ,
                                        debugLogs.created_time AS CreatedTime ,
                                        debugLogs.system_code AS SystemCode ,
                                        debugLogs.ip_address AS IpAddress ,
                                        debugLogs.client_ip AS ClientIp,
                                        debugLogs.appdomain_name AS AppDomainName ,
                                        *
                                FROM    dbo.t_logs_debug_log AS debugLogs
                                WHERE   1 = 1");
            var sbSqlTotal  = new StringBuilder(@"SELECT  COUNT(debugLogs.id)
                                FROM    dbo.t_logs_debug_log AS debugLogs
                                WHERE   1 = 1");

            if (!request.SystemCode.IsNullOrEmpty())
            {
                sbSqlPaging.Append(" AND debugLogs.system_code=@SystemCode");
                sbSqlTotal.Append(" AND debugLogs.system_code=@SystemCode");
                p.Add("SystemCode", request.SystemCode, dbType: System.Data.DbType.String);
            }
            if (!request.Source.IsNullOrEmpty())
            {
                sbSqlPaging.Append(" AND debugLogs.source=@Source");
                sbSqlTotal.Append(" AND debugLogs.source=@Source");
                p.Add("Source", request.Source, System.Data.DbType.String);
            }
            if (!request.Message.IsNullOrEmpty())
            {
                sbSqlPaging.Append(" AND debugLogs.message LIKE @Message");
                sbSqlTotal.Append(" AND debugLogs.message LIKE @Message");
                p.Add("Message", "%" + request.Message + "%", System.Data.DbType.String);
            }
            if (request.CreatedTimeStart.HasValue)
            {
                sbSqlPaging.Append(" AND debugLogs.created_time >= @CreatedTimeStart");
                sbSqlTotal.Append(" AND debugLogs.created_time >= @CreatedTimeStart");
                p.Add("CreatedTimeStart", request.CreatedTimeStart.Value, System.Data.DbType.DateTime);
            }
            if (request.CreatedTimeEnd.HasValue)
            {
                sbSqlPaging.Append(" AND debugLogs.created_time <= @CreatedTimeEnd");
                sbSqlTotal.Append(" AND debugLogs.created_time <= @CreatedTimeEnd");
                p.Add("CreatedTimeEnd", request.CreatedTimeEnd.Value, System.Data.DbType.DateTime);
            }

            var sqlPaging = string.Format(@"SELECT  rs.*
                FROM    ( {0}
		                ) AS rs
                WHERE   rs.RowNum BETWEEN @Start AND @End", sbSqlPaging.ToString());
            var sqlStr    = string.Format("{0};{1};", sqlPaging, sbSqlTotal.ToString());

            p.Add("Start", startIndex, System.Data.DbType.Int32);
            p.Add("End", endIndex, System.Data.DbType.Int32);

            using (var conn = DapperHelper.CreateConnection())
            {
                var multi  = conn.QueryMultiple(sqlStr, p);
                var query1 = multi.Read <GetPagingDebugLogsResponse>();
                var query2 = multi.Read <int>();
                totalCount = query2.First();

                result = new PagingResult <GetPagingDebugLogsResponse>(totalCount, request.PageIndex, request.PageSize, query1);
            }

            return(result);
        }