3

我正在尝试使用由System.Diagnostics. 由于我的解决方案包含多个项目,因此我想为整个应用程序创建一个开关,并为每个项目创建一个开关。

现在的问题是,我怎样才能做到这一点,我应该把开关定义放在哪里?

从应用程序范围的开关开始,由于我理解的 C# 中没有全局变量之类的东西,我怎么能做到这一点?

会放

static TraceSwitch ApplicationSwitch = new TraceSwitch("Application", "Enables logging in the whole application.");

在每个类中解决这个问题,还是宁愿创建与类一样多的开关,每个类都具有相同的名称?(我猜是后者)

或者我应该把初始化放在一个单独的类中吗

static class GlobalSwitch
{
    static TraceSwitch Application = new TraceSwitch("Application", "Enables logging in the whole application.");
}

并像这样从其他所有类中引用它

public OtherClass
{
    static TraceSwitch Application = GlobalSwitch.Application;
}

这将解决为整个项目使用 1 个开关的问题,但这是一个好习惯吗?

关于应用程序范围的开关,我必须GlobalSwitch在每个其他项目中引用包含该类的项目,如果可能的话我想避免这种情况。

非常感谢有关如何以智能方式完成此操作的一些线索。

4

1 回答 1

2

我通常将跟踪开关(和日志函数)包装到一个中央日志程序集中,向开关公开一个静态接口以及调用正在使用的底层日志功能的静态日志方法(通常是 Trace.Write-functions)。

于 2009-04-30T09:37:24.820 回答