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;