2008-11-20 4 views
0

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

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

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

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

ответ

0

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

+0

@Mitchel Продавцы: Да, это все ASMX, но все они в разных проектах. Слияние их - одно из решений, но потребуется больше времени ... – badbadboy 2008-11-21 00:17:29

1

От log4net-х FAQ:

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

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

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

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

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