Have `GetLogs` take an optional predicate so that the list that is returned is pre-filtered. public IReadOnlyList<LogEntry> GetLogs(Func<LogEntry, bool> predicate);