Я пытаюсь улучшить мою программу некоторыми функциями ведения журнала, предоставляемыми 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;
}
Это решит проблему с одним переключателем для всего проекта, но разве это хорошая практика?
Относительно общего применения приложения, я должен был бы сослаться на проект, содержащий класс GlobalSwitch
во всех других проектах, которых я хотел бы избежать, если это возможно.
Некоторые подсказки относительно того, как это можно сделать разумным способом, были бы очень признательны.