В чем разница между Ilogger.LogTrace и Trace.WriteLine? - PullRequest
0 голосов
/ 03 июля 2019

Моему приложению требуется решение для отслеживания поведения высокопроизводительного многопоточного приложения-службы. Приложение службы 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
}

Какая опция дает мне лучшую производительность в асинхронном / параллельном / многопоточном приложении, и какие недостатки я должен знать о

Я хочу, чтобы сообщения заканчивались файлом журнала в зависимости от настраиваемого уровня журнала. Я также хочу иметь возможность контролировать приложение во время выполнения.

...