我的应用程序需要一种跟踪高性能多线程服务应用程序行为的解决方案。 Windows服务应用程序需要尽快处理高速Tcp通信。还需要良好的可追溯性。
我发现Microsoft.Extensions.Logging.TraceSource作为Microsoft.Extensions.Logging的实现,该实现在System.Diagnostics中实现了跟踪日志记录。 我发现我可以为System.Diagnostics编写一个跟踪侦听器,以将所有消息写入Microsoft.Extensions.Logging中的ILogger实现。
我更喜欢代码中的Trace.WriteLine,因为它不需要依赖项注入或自定义单例。
public void DoWork(ILogger logger)
{
logger.LogTrace("My Log message"); //Ilogger option
Trace.WriteLine("My Trace message"); //Trace option
}
哪个选项在异步/并行/多线程应用程序中为我提供最佳性能,我应该了解哪些缺点
我希望消息根据可配置的日志级别最终存储在日志文件中。我还希望能够在运行时监视应用程序。