我之前没有使用过System.Diagnostics.TraceSource包,所以我想确保我正确实现它。在过去,我使用NLog(在log4net之前)在配置文件中(或以编程方式)配置设置,并在每个类中声明:
private static Logger Logger = LogManager.GetCurrentClassLogger();
然后按要求发表这样的陈述:
Logger.Error("some message", exc);
但是使用TraceSource,您可以创建一个新的TraceSource,设置其属性并分配您的侦听器,然后将消息写入其中。
我是否为NLog等每个类创建一个TraceSource实例?或者每个应用程序都有一个所有类使用的应用程序?如果是前者,似乎至少我应该将TraceSource的创建集中到一个工厂或其他东西,以便简化代码,并且我不需要在每次需要使用它时设置设置,监听器等。这里的正确用法是什么?
注意:由于此代码的部署方式,我不能拥有配置文件,我必须以编程方式完成所有操作。
答案 0 :(得分:0)
只需使用
class DracBlahBlah
{
private static readonly TraceSource = new TraceSource("deathtoexecutives", SourceLevel.Error);
}
以及其他课程
class werewolf
{
private static readonly TraceSource = new TraceSource("deathtoexecutives", SourceLevel.Error);
}
然后使用config分配监听器
<system.diagnostics>
<sharedListeners>
<add name="p0rn" type="p0rn.Tracelistener, super.bad.crazytown" />
</sharedListeners>
<sources>
<source name="deathtoexecutives" switchValue="Verbose">
<listeners>
<add name="p0rn" />
</listeners>
</source>