Я занимаюсь разработкой 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
}
}
Вопрос: Существуют ли другие способы ведения журналов или создания областей журналирования без Код загрязнения с надписью «использовать…» везде? Есть ли какое-либо существующее решение, которое я могу использовать, не изобретая колесо?