示例#1
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public static Tuple <List <LogInfo>, long> QueryLog(QueryLogInfoModel queryData)
        {
            var db = CreateDb();

            if (queryData.PageNum <= 0)
            {
                queryData.PageNum = 1;
            }
            if (queryData.PageSize <= 0 || queryData.PageSize > 100)
            {
                queryData.PageSize = 20;
            }
            //获取表
            MongoCollection <LogInfo> col     = CreateMongoCollection <LogInfo>(queryData.TableName, db);
            List <IMongoQuery>        queries = new List <IMongoQuery>();

            if (!string.IsNullOrEmpty(queryData.APPID))
            {
                queries.Add(Query <LogInfo> .Where(item => item.APPID == queryData.APPID.Trim()));
            }
            if (queryData.EndLogDate.HasValue)
            {
                queries.Add(Query <LogInfo> .LTE(item => item.LogDate, queryData.EndLogDate));
            }
            if (queryData.StartLogDate.HasValue)
            {
                queries.Add(Query <LogInfo> .GTE(item => item.LogDate, queryData.StartLogDate));
            }
            if (!string.IsNullOrEmpty(queryData.Exception))
            {
                queries.Add(Query <LogInfo> .Where(item => item.Exception.Contains(queryData.Exception.Trim())));
            }
            if (!string.IsNullOrEmpty(queryData.Level))
            {
                queries.Add(Query <LogInfo> .EQ(item => item.Level, queryData.Level.Trim()));
            }
            if (!string.IsNullOrEmpty(queryData.Message))
            {
                queries.Add(Query <LogInfo> .Where(item => item.Message.Contains(queryData.Message.Trim())));
            }
            if (!string.IsNullOrEmpty(queryData.Title))
            {
                queries.Add(Query <LogInfo> .Where(item => item.Title.Contains(queryData.Title.Trim())));
            }
            if (!string.IsNullOrEmpty(queryData.Index))
            {
                queries.Add(Query <LogInfo> .Where(item => item.Index.Contains(queryData.Index.Trim())));
            }
            if (!string.IsNullOrEmpty(queryData.Group))
            {
                queries.Add(Query <LogInfo> .Where(item => item.Group.Contains(queryData.Group.Trim())));
            }
            if (!string.IsNullOrEmpty(queryData.Method))
            {
                queries.Add(Query <LogInfo> .Where(item => item.Method.Contains(queryData.Method.Trim())));
            }
            if (!string.IsNullOrEmpty(queryData.ServerIP))
            {
                queries.Add(Query <LogInfo> .EQ(item => item.ServerIP, queryData.ServerIP.Trim()));
            }
            var finder = queries.Count == 0 ? col.FindAll() : col.Find(Query.And(queries));
            var skip   = (queryData.PageNum - 1) * queryData.PageSize;
            var res    = finder.SetSkip(skip).SetSortOrder(SortBy <LogInfo> .Descending(item => item.LogDate)).SetLimit(queryData.PageSize);

            Debug.WriteLine(res.Query);
            Debug.WriteLine(res.Options);
            var result = res.ToList();
            var total  = queries.Count == 0 ? col.FindAll().Count() : (queryData.PageNum + (result.Count == queryData.PageSize ? 1 : 0)) * queryData.PageSize;

            return(new Tuple <List <LogInfo>, long>(result, total));
        }
示例#2
0
        /// <summary>
        /// QueryLog
        /// </summary>
        /// <param name="queryData1"></param>
        /// <returns></returns>
        public ActionResult QueryLog(QueryLogInfoModel queryData1)
        {
            var data = LogBll.QueryLog(queryData1);

            return(Json(new { total = data.Item2, rows = data.Item1 }));
        }