Создайте регистратор в .Net с функцией режима Throttling - PullRequest
0 голосов
/ 22 марта 2012

Я должен создать Logger в .NET, который должен работать в обычном режиме и режиме дросселирования.

Он должен прекратить запись (означает, что он должен переключиться в режим дросселя), когда есть постоянная ошибка или та же ошибка из-заПо какой-то причине (скажем, сервер не работает), потому что, если, скажем, сервер не работает в течение многих дней, несколько файлов журнала будут занимать много места на диске.

И он должен вернуться в нормальный режим, когда ошибка контина или та же ошибкаостанавливается.

Может кто-нибудь помочь мне с логикой о том, как этого добиться?Я использую Microsoft Enterprise Library для создания регистратора.

1 Ответ

0 голосов
/ 28 марта 2012

Enterprise Library не сообщит вам, что произошел сбой.Это проглотит исключение.Если у вас настроен специальный источник ошибок, он запишет LogEntry в специальный источник ошибок.

Вы можете написать собственный прослушиватель трассировки, содержащий вашу логику, или изменить блок, чтобы он содержал вашу специализированную логику.

Я предполагаю, что вы хотите написать собственный прослушиватель трассировки.

Учитывая вышесказанное, я думаю, что у вас есть 2 варианта: в вашем настраиваемом прослушивателе трассировки выполните предварительные проверки, чтобы проверить некоторый наборпредварительных условий (сервер работает и т. д.) или в своем пользовательском прослушивателе трассировки выполните проверки после регистрации на наличие ошибок в специальном источнике.В последнем случае вам необходимо знать местоположение и формат специального источника ошибок, и вам нужно будет проанализировать его, чтобы определить, было ли выполнено условие вашей ошибки (количество ошибок в минуту или количество последовательных ошибок и т. Д.).

Оба решения имеют недостатки.

А как насчет этого: для специального источника ошибок используйте RollingFlatFileTraceListener, установленный для перезаписи, таким образом, ограничивая размер на диске (вы можете выбрать размер файла (ов), который вы хотите иметь)?Вы даже можете собрать информацию из журнала, если потребуется.Это похоже на беспроигрышный вариант.

...