aspnetcore/test/Microsoft.AspNetCore.Server.../TestHelpers/TestApplicationErrorLogger.cs

47 lines
1.3 KiB
C#

// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using Microsoft.AspNetCore.Server.Kestrel;
using Microsoft.Extensions.Logging;
namespace Microsoft.AspNetCore.Server.KestrelTests
{
public class TestApplicationErrorLogger : ILogger
{
// Application errors are logged using 13 as the eventId.
private const int ApplicationErrorEventId = 13;
public int TotalErrorsLogged { get; set; }
public int ApplicationErrorsLogged { get; set; }
public IDisposable BeginScope<TState>(TState state)
{
return new Disposable(() => { });
}
public bool IsEnabled(LogLevel logLevel)
{
return true;
}
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
{
#if false
Console.WriteLine($"Log {logLevel}[{eventId}]: {formatter(state, exception)} {exception?.Message}");
#endif
if (eventId.Id == ApplicationErrorEventId)
{
ApplicationErrorsLogged++;
}
if (logLevel == LogLevel.Error)
{
TotalErrorsLogged++;
}
}
}
}