.NET Standard 2.1: методы ведения журнала, трассировки и профилирования

Я разрабатываю Build Progressive Web (PWA) с помощью Blazor. Существует множество асинхронных методов, и при необходимости я хочу отслеживать некоторые из вызовов методов. Пока что я придумал только проприетарное решение, которое включает IDisposable:

public interface ILogProvider
{
    ILogScope CreateScope(string name);
}

public class ConsoleLogProvider : ILogProvider
{
    public ILogScope CreateScope([CallerMemberName] string name = "scope")
    {
        return new LogToConsole(name);
    }
}

public class LogToConsole : ILogScope
{
    public string Name { get; private set; }
    public LogToConsole(string name)
    {
        Name = name;
        Console.WriteLine($"--> begin of { Name }");
    }

    public void Dispose()
    {   
        Console.WriteLine($"<--end of { Name }");
    }
}

Применение:

void MethodName()
{
    using (var scope = provider.CreateScope())
    {
        //Do something
    }
}

Вопрос: Есть ли какие-либо другие способы ведения журнала или создания областей ведения журнала без кода загрязнения с указанием везде "using…"? Есть ли какое-нибудь существующее решение, которое я могу использовать, не изобретая заново колесо?

0 ответов

Другие вопросы по тегам