Один файл журнала и один обработчик ошибок для набора веб-сервисов - возможно? - PullRequest
0 голосов
/ 21 ноября 2008

У нас есть набор веб-сервисов, который также является нашим внутренним API. Они прекрасно используют один общий файл web.config.

Есть ли способ как-то заставить log4net создать один журнал для всего сайта, для всех них? И есть общий обработчик ошибок? Проблема, я думаю, что они все отдельные виртуальные каталоги, отдельные приложения ...?

Но опять же ... они используют один и тот же файл web.config, и он работает нормально ... могут ли они каким-то образом совместно использовать global.asax или что-то еще? Не могу заставить его работать ...

Спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 13 августа 2009

Из журнала FAQ :

Как получить несколько процессов для входа в тот же файл?

По умолчанию FileAppender содержит эксклюзивная блокировка записи в файл журнала пока идет регистрация. Это мешает другие процессы от записи до файл. FileAppender может быть настроен на использование другой блокировки модель MinimalLock, которая только приобретает блокировка записи во время записи журнала написано. Это позволяет несколько процессы перемежения записи в тот же файл, хотя и с потерей в спектакль. Смотрите FileAppender примеры конфигурации для примера Конфигурация MinimalLock.

Хотя модель MinimalLock может быть используется для чередования записей в один файл не может быть оптимальным решение, особенно при входе из несколько машин. В качестве альтернативы вы может иметь один или несколько процессов журнала RemotingAppenders. С использованием RemoteLoggingServerPlugin (или IRemoteLoggingSink) процесс может получать все события и регистрировать их один файл журнала.

Без дополнительной настройки log4net устанавливает эксклюзивную блокировку файла. Используя их настройку MinimalLock, вы можете «надеяться» на совместное ведение журнала. Другими словами, ваш пробег может отличаться.

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

0 голосов
/ 21 ноября 2008

Они все внутри одного проекта? Являются ли они услугами ASMX? Если это так, и вы можете поместить их в один и тот же виртуальный каталог, проблем не должно быть.

...