В чем разница между Ilogger.LogTrace и Trace.WriteLine?
Моему приложению требуется решение для отслеживания поведения высокопроизводительного многопоточного приложения-службы. Приложение службы Windows должно обрабатывать высокоскоростной Tcp-трафик как можно быстрее. Это также требует хорошей прослеживаемости.
Я нашел Microsoft.Extensions.Logging.TraceSource как реализацию для Microsoft.Extensions.Logging, которая реализует ведение журнала трассировки в System.Diagnostics. И я обнаружил, что могу написать tracelistener для System.Diagnostics для записи всех сообщений в реализацию ILogger в Microsoft.Extensions.Logging.
Я предпочитаю Trace.WriteLine в коде, поскольку это не требует внедрения зависимостей или пользовательского синглтона.
public void DoWork(ILogger logger)
{
logger.LogTrace("My Log message"); //Ilogger option
Trace.WriteLine("My Trace message"); //Trace option
}
Какой вариант дает мне лучшую производительность в асинхронном / параллельном / многопоточном приложении, и какие недостатки я должен знать о
Я хочу, чтобы сообщения попадали в файл журнала в зависимости от настраиваемого уровня журнала. Я также хочу иметь возможность контролировать приложение во время выполнения.