| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Общая переменная log |
| Автор: Lеstat 3.9.2006, 02:16 | ||||||
| хочу вот сделать переменную класса log, которая была бы видна в любом файле проекта вобщем сделал класс log
потом приходится в каждом другом классе где хочу вести лог создавать переменную ей уже логировать... вобщем это глючит и стирает файл лога Мне бы хотелось сделать в каком-нибудь одном месте переменную класса log
и чтобы потом я мог в любом файле/классе проекта писать просто
можно ли такое сделать? и если можно, то как? |
| Автор: mr.DUDA 3.9.2006, 10:50 | ||||||
По сути вопроса: 1) Чтобы все классы работали с единственным экземпляром log-а, можно использовать паттерн singleton: сделать конструктор приватным, и вынести наружу статическое свойство Instance (в переводе - единственный экземпляр):
Тогда работать с логом можно вот так:
Либо можно все методы класса log сделать статическими, это кому как больше нравится. 2) Для протоколирования в .NET специально предусмотрены так называемые trace listener-ы - это класс, выводящий при отладке сообщения в окно output студии, а также в файл, event log, базу данных и т.п. - настраиваемый через .config файл приложения. Для вывода сообщения в trace, используется стандартный класс Trace пространства имён System.Diagnostics. Преимущество такого подхода - в настраиваемости (в конфиге можно также настроить уровень протоколирования - TraceLevel.Error, Warning, Info, Verbose и Off). Выводом в файл и т.п. занимается класс, унаследованный от TraceListener. Можно написать свой собственный или использовать, к примеру, TextWriterTraceListener. |
| Автор: Lеstat 3.9.2006, 14:41 |
| Спасибо! Разобрался все работает! |