我之前没有使用过 System.Diagnostics.TraceSource 包,所以我想确保我正确地实现它。过去我使用过 NLog(在 log4net 之前),您在配置文件中(或以编程方式)配置设置,并在每个类中声明:
private static Logger Logger = LogManager.GetCurrentClassLogger();
然后根据需要这样的语句:
Logger.Error("some message", exc);
但是使用 TraceSource,您可以创建一个新的 TraceSource,设置它的属性并分配您的侦听器,然后将您的消息写入它。
我是否为每个类(如 NLog)创建一个 TraceSource 实例?或者我是否每个应用程序都有一个所有类都使用的应用程序?如果是前者,似乎至少我应该将 TraceSource 的创建集中到工厂或其他东西中,以便简化代码,并且每次我需要使用它时我都不必设置设置、侦听器等。这里的正确用法是什么?
注意:由于此代码将如何部署的性质,我无法拥有配置文件,我必须以编程方式完成所有操作。