Использование log4net. Шутки в сторону.
Используя такую стандартную и вездесущую библиотеку, вы получаете руководство от людей, которые долгое время думали об этой самой проблеме. Решение состоит в том, что большинство журнальных библиотек имеют несколько уровней ведения журнала.
В log4net, например, я могу сделать
ILog log = LogManager.GetLogger("some logger");
log.Debug("some debugging info");
log.Info("some message meaningful in the domain");
log.Warn("something might be occurring that merits your attention");
log.Error("Everything just went to hell")
Администратор приложение может установить различные уровни входа, что он заинтересован в том, чтобы. Можно даже позволить ему изменить эту конфигурацию во время выполнения.По сути, с надежной библиотекой протоколирования, такой как log4net, вы можете направлять различные уровни ведения журнала из разных источников в разные приложения. Например, вы можете иметь скользящий файл со всеми сообщениями о регистрации на прошлой неделе, хранящимися на жестком диске, сообщениями об информации, предупреждениях и ошибках, которые не возникают на вашем уровне доступа к данным, вставляемом в базу данных, и все отправленные ошибки вам по электронной почте.
Я думаю, что то, что вы описываете, довольно отчетливо находится под уровнем «отладочного» журнала.
Вы можете, конечно же, реализовать уровни ведения журнала самостоятельно, но если кто-либо из вашей библиотеки заинтересован в получении всей информации об отладке, им придется изучать вашу систему, в дополнение к тому, что они используют. Лучше стандартизировать.
Так передовой опыт:
- использовать уровни разных протоколирований.
- Не сворачивайте свои собственные рамки ведения журнала, используйте log4net (который действительно в этот день и возраст довольно стандартный) или, по крайней мере, Microsoft entlib logging block.