using Serilog.Events;
using System;
using System.Collections.Generic;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence.DatabaseModelDefinitions;
namespace Umbraco.Core.Logging.Viewer
{
public interface ILogViewer
{
///
/// Get all logs from your chosen datasource back as Serilog LogEvents
///
IEnumerable GetAllLogs(DateTimeOffset startDate, DateTimeOffset endDate);
///
/// A count of number of errors
/// By counting Warnings with Exceptions, Errors & Fatal messages
///
int GetNumberOfErrors(DateTimeOffset startDate, DateTimeOffset endDate);
///
/// Returns a number of the different log level entries
///
LogLevelCounts GetLogLevelCounts(DateTimeOffset startDate, DateTimeOffset endDate);
///
/// Returns the top 10 common log message templates and their counts
///
IEnumerable GetCommonLogMessages(DateTimeOffset startDate, DateTimeOffset endDate, int numberOfResults = 10);
///
/// Returns the collection of logs
///
PagedResult GetLogs(DateTimeOffset startDate, DateTimeOffset endDate,
int pageNumber = 1,
int pageSize = 100,
Direction orderDirection = Direction.Descending,
string filterExpression = null);
}
}