in src/Google.Cloud.Functions.Testing/MemoryLogger.cs [45:76]
public MemoryLogger(string categoryName, IExternalScopeProvider? scopeProvider) =>
(_categoryName, _scopeProvider) = (categoryName, scopeProvider ?? new LoggerExternalScopeProvider());
/// <summary>
/// Clears the log entries in this logger.
/// </summary>
public void Clear() => _logEntries.Clear();
/// <summary>
/// Creates a list of the log entries in this logger. The returned list is an independent clone
/// of the current set of log entries. This call does not affect the state of the logger.
/// </summary>
/// <returns>A list of log entries in the logger.</returns>
public List<TestLogEntry> ListLogEntries() => _logEntries.ToList();
/// <inheritdoc />
public IDisposable BeginScope<TState>(TState state) where TState : notnull => _scopeProvider.Push(state);
/// <summary>
/// Returns true for any log level other than None; filtering is expected
/// to be provided by other infrastructure.
/// </summary>
public bool IsEnabled(LogLevel logLevel) => logLevel != LogLevel.None;
/// <summary>
/// Formats the log entry as a <see cref="TestLogEntry"/> and retains it in memory.
/// </summary>
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception? exception, Func<TState, Exception?, string> formatter)
{
var entry = TestLogEntry.Create(_categoryName, logLevel, eventId, state, exception, formatter, _scopeProvider);
_logEntries.Enqueue(entry);
}