文章出處
文章列表
在大叔lind框架里有日志組件logger,而在日志實現方式上有file,mongodb,sql,json等方式,對分布式日志處理上大叔推薦使用mongodb進行存儲,除了它的高效寫入,靈活的結構外,還有對復雜條件的支持,你可以從百萬數據中查詢到你需要的內容,這點是關系數據庫不能實現的,你無法想法使用like這種語句是百萬數據中全表掃描...
大叔日志管理UI
對多個檢索條件的支持
- 條件創建者
- 初者化空條件
- 條件拼接
NameValueCollection nv = new NameValueCollection(); var builder = Builders<GlobalLogger>.Filter; var filter = builder.Empty; if (!string.IsNullOrWhiteSpace(level) && level != "All") { filter = builder.Eq("level", level); nv.Add("level", level); } if (startTime.HasValue) { filter = filter & builder.Gte("DataCreateDateTime", startTime.Value); nv.Add("startTime", startTime.Value.ToString()); } if (endTime.HasValue) { filter = filter & builder.Lte("DataCreateDateTime", endTime.Value); nv.Add("endTime", endTime.Value.ToString()); } if (!string.IsNullOrWhiteSpace(keyword)) { filter = filter & builder.Regex("Message", new BsonRegularExpression(new Regex(keyword))); nv.Add("keyword", keyword); } int pageSize = 10; nv.Add("pageSize", pageSize.ToString()); int skip = (int)Math.Ceiling((double)((page - 1) * pageSize)); var table = Lind.DDD.MongoDbClient.MongoManager<GlobalLogger>.Instance .Find(filter) .SortBy(i => i.DataCreateDateTime); ViewBag.total = table.Count(); ViewBag.nv = nv; var model = table.Skip(skip) .Limit(pageSize) .ToList(); return View(model);
然后頁面上直接放表表格即可,建議通過bootstrap進行布局,這樣有移動設備上也可以使用!
感謝各位的閱讀!
文章列表
全站熱搜