如何使用相同的名称初始化多个类中的许多TraceSource

时间:2015-04-30 00:20:52

标签: c# .net logging trace

我正在借助

将记录添加到我的c#应用程序中
System.Diagnostics.TraceSource

现在很多课程的顶部(UI,Processing,Data ...)我有这个:

private static TraceSource logger = new TraceSource("SourceName");

我希望每个类都记录到一个公共源名称,但不需要像现在这样对其进行硬编码。

源名称将由顶级应用程序提供,该名称对应于配置文件中的名称。

实现此目的的最佳方法是什么,除了向已激活日志记录的每个类中添加一个新的string sourceName参数,并将其从程序主机类传递到最低数据层类?

1 个答案:

答案 0 :(得分:1)

创建一个Static单例,它将有一个名为name的空属性字符串。该属性将由原始进程初始化,该进程将从设置中读取该属性,然后将其放入单例的name属性中。然后,当所有工人类都需要名称时,他们将从初始化期间设置的单例的静态属性中获取它。