によって提供されるいくつかのログ機能を使用して、プログラムを強化しようとしていSystem.Diagnostics
ます。私のソリューションは複数のプロジェクトで構成されているため、アプリケーション全体とプロジェクトごとに 1 つのスイッチを作成したいと考えました。
問題は、どうすればこれを達成できるか、スイッチ定義をどこに置くべきかということです。
アプリケーション全体のスイッチから始めて、私が理解しているように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
クラスを含むプロジェクトを他のすべてのプロジェクトで参照する必要がありますが、これはできれば避けたいと思います。
これをスマートな方法で行う方法に関するいくつかの手がかりをいただければ幸いです。