/// <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)); }
/// <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); }
/// <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); }