Adds in support for log level filtering - rather than using expressions

This commit is contained in:
Warren
2018-09-03 21:29:13 +01:00
parent 20cf8a7637
commit 96d76c211c
3 changed files with 22 additions and 8 deletions

View File

@@ -36,7 +36,8 @@ namespace Umbraco.Core.Logging.Viewer
int pageNumber = 1,
int pageSize = 100,
Direction orderDirection = Direction.Descending,
string filterExpression = null);
string filterExpression = null,
string[] logLevels = null);
}
}

View File

@@ -45,7 +45,8 @@ namespace Umbraco.Core.Logging.Viewer
public PagedResult<LogMessage> GetLogs(DateTimeOffset startDate, DateTimeOffset endDate,
int pageNumber = 1, int pageSize = 100,
Direction orderDirection = Direction.Descending,
string filterExpression = null)
string filterExpression = null,
string[] logLevels = null)
{
//Get all logs into memory (Not sure this good or not)
var logs = GetAllLogs(startDate, endDate);
@@ -60,6 +61,18 @@ namespace Umbraco.Core.Logging.Viewer
logs = logs.Where(filter);
}
//This is user used the checkbox UI to toggle which log levels they wish to see
//If an empty array - its implied all levels to be viewed
if(logLevels.Length > 0)
{
var logsAfterLevelFilters = new List<LogEvent>();
foreach (var level in logLevels)
{
logsAfterLevelFilters.AddRange(logs.Where(x => x.Level.ToString() == level));
}
logs = logsAfterLevelFilters;
}
long totalRecords = logs.Count();
long pageIndex = pageNumber - 1;

View File

@@ -1,6 +1,6 @@
using System;
using System.Collections.Generic;
using System.Web.Mvc;
using System.Web.Http;
using Umbraco.Core.Logging.Viewer;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence.DatabaseModelDefinitions;
@@ -24,26 +24,26 @@ namespace Umbraco.Web.Editors
[HttpGet]
public int GetNumberOfErrors()
{
return _logViewer.GetNumberOfErrors(startDate: DateTime.Now, endDate: DateTime.Now);
return _logViewer.GetNumberOfErrors(startDate: DateTime.Now.AddDays(-1), endDate: DateTime.Now);
}
[HttpGet]
public LogLevelCounts GetLogLevelCounts()
{
return _logViewer.GetLogLevelCounts(startDate: DateTime.Now, endDate: DateTime.Now);
return _logViewer.GetLogLevelCounts(startDate: DateTime.Now.AddDays(-1), endDate: DateTime.Now);
}
[HttpGet]
public IEnumerable<CommonLogMessage> GetCommonLogMessages()
{
return _logViewer.GetCommonLogMessages(startDate: DateTime.Now, endDate: DateTime.Now);
return _logViewer.GetCommonLogMessages(startDate: DateTime.Now.AddDays(-1), endDate: DateTime.Now);
}
[HttpGet]
public PagedResult<LogMessage> GetLogs(string orderDirection = "Descending", int pageNumber = 1, string filterExpression = null)
public PagedResult<LogMessage> GetLogs(string orderDirection = "Descending", int pageNumber = 1, string filterExpression = null, [FromUri]string[] logLevels = null)
{
var direction = orderDirection == "Descending" ? Direction.Descending : Direction.Ascending;
return _logViewer.GetLogs(startDate: DateTime.Now, endDate: DateTime.Now, filterExpression: filterExpression, pageNumber: pageNumber, orderDirection: direction);
return _logViewer.GetLogs(startDate: DateTime.Now.AddDays(-1), endDate: DateTime.Now, filterExpression: filterExpression, pageNumber: pageNumber, orderDirection: direction, logLevels: logLevels);
}
}