Ejemplo n.º 1
0
        /// <summary>
        /// 获取所有错误日志(分页)
        /// </summary>
        /// <param name="request"></param>
        /// <param name="page"></param>
        /// <param name="rows"></param>
        /// <returns></returns>
        public ActionResult GetPagingErrorLogs(GetPagingErrorLogsRequest request, int page, int rows)
        {
            var result = string.Empty;

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

            var rs = _errorLogService.GetPagingErrorLogs(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));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获取所有错误日志(分页)
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public ServiceResult <PagingResult <GetPagingErrorLogsResponse> > GetPagingErrorLogs(GetPagingErrorLogsRequest request)
        {
            var result = new ServiceResult <PagingResult <GetPagingErrorLogsResponse> >
            {
                ReturnCode = ReturnCodeType.Error,
                Content    = new PagingResult <GetPagingErrorLogsResponse>()
            };

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

            if (rs != null && rs.Entities.HasValue())
            {
                foreach (var item in rs.Entities)
                {
                    item.DetailUrl = string.Format("{0}ErrorLog/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);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 获取所有错误日志(分页)
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public PagingResult <GetPagingErrorLogsResponse> GetPagingErrorLogs(GetPagingErrorLogsRequest request)
        {
            PagingResult <GetPagingErrorLogsResponse> 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 errorLogs.id DESC ) AS RowNum ,
                        errorLogs.created_time AS CreatedTime ,
                        errorLogs.system_code AS SystemCode ,
                        errorLogs.ip_address AS IpAddress ,
                        errorLogs.client_ip AS ClientIp,
                        errorLogs.appdomain_name AS AppDomainName ,
                        *
                FROM    dbo.t_logs_error_log AS errorLogs
                WHERE   1 = 1");
            var sbSqlTotal  = new StringBuilder(@"SELECT  COUNT(errorLogs.id)
                FROM    dbo.t_logs_error_log AS errorLogs
                WHERE   1 = 1");

            if (!request.SystemCode.IsNullOrEmpty())
            {
                sbSqlPaging.Append(" AND errorLogs.system_code=@SystemCode");
                sbSqlTotal.Append(" AND errorLogs.system_code=@SystemCode");
                p.Add("SystemCode", request.SystemCode, dbType: System.Data.DbType.String);
            }
            if (!request.Source.IsNullOrEmpty())
            {
                sbSqlPaging.Append(" AND errorLogs.source=@Source");
                sbSqlTotal.Append(" AND errorLogs.source=@Source");
                p.Add("Source", request.Source, System.Data.DbType.String);
            }
            if (!request.Message.IsNullOrEmpty())
            {
                sbSqlPaging.Append(" AND errorLogs.message LIKE @Message");
                sbSqlTotal.Append(" AND errorLogs.message LIKE @Message");
                p.Add("Message", "%" + request.Message + "%", System.Data.DbType.String);
            }
            if (request.CreatedTimeStart.HasValue)
            {
                sbSqlPaging.Append(" AND errorLogs.created_time >= @CreatedTimeStart");
                sbSqlTotal.Append(" AND errorLogs.created_time >= @CreatedTimeStart");
                p.Add("CreatedTimeStart", request.CreatedTimeStart.Value, System.Data.DbType.DateTime);
            }
            if (request.CreatedTimeEnd.HasValue)
            {
                sbSqlPaging.Append(" AND errorLogs.created_time <= @CreatedTimeEnd");
                sbSqlTotal.Append(" AND errorLogs.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 <GetPagingErrorLogsResponse>();
                var query2 = multi.Read <int>();
                totalCount = query2.First();

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

            return(result);
        }