query method
Query entries matching filter, returning at most limit results.
Implementation
List<LogRecord> query(LogFilter filter, {int? limit}) {
final all = entries;
final results = <LogRecord>[];
for (final record in all) {
if (limit != null && results.length >= limit) break;
final matches = switch (record) {
LogSpanStart() => false, // span starts are transient, not queryable
LogEvent event => filter.matches(
level: event.level,
scope: event.scope,
tag: event.tag,
traceId: event.traceId,
requestId: event.requestId,
),
LogSpan span => filter.matches(
level: RpcLogLevel.info, // spans don't have a level; treat as info
scope: span.scope,
traceId: span.traceId,
),
};
if (matches) results.add(record);
}
return results;
}