log4Net EventlogAppender не работает на Asp. Сетевые 2.0 WebSite?

Я настроил log4Net EventLogAppender для Asp. Сетевые 2.0. Однако это ничего не регистрирует. У меня есть следующее в моей сети. Конфигурация.

<log4net>
    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
      <param name="LogName" value="Test Log" />
      <param name="ApplicationName" value="Test-Web" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
    <root>
      <priority value="ERROR"/>
      <appender-ref ref="EventLogAppender"/>
    </root>
    <logger name="NHibernate">
      <level value="ERROR" />
      <appender-ref ref="EventLogAppender" />
    </logger>
  </log4net>

Мне уже создали журнал событий Тестового Журнала, и у пользователя AspNet есть разрешение на ключе реестра журнала событий. У меня также есть log4Net, настроенный в Global.asax Application_Start.

log4net.Config.XmlConfigurator.Configure();

Обновление: Я включил log4net внутреннюю отладку и нашел следующую ошибку в трассировке.

log4net:ERROR XmlHierarchyConfigurator: Could not create Appender [EventLogAppender] of type [log4net.Appender.EventLogAppender]. Reported error follows.
System.Security.SecurityException: The source was not found, but some or all event logs could not be searched.  Inaccessible logs: Security.
   at System.Diagnostics.EventLog.FindSourceRegistration(String source, String machineName, Boolean readOnly)
   at System.Diagnostics.EventLog.SourceExists(String source, String machineName)
   at System.Diagnostics.EventLog.SourceExists(String source)
   at log4net.Appender.EventLogAppender.ActivateOptions()
   at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseAppender(XmlElement appenderElement)

Обновление 2: Это наконец работает, если я создаю Источник события (Тестовая сеть) с помощью основанного на консоли приложения в c# и затем с помощью веб-приложения.

9
задан Amitabh 27 August 2010 в 21:19
поделиться

2 ответа

Я не могу точно сказать, что может быть не так, но если вы пойдете сюда, вы увидите «Как мне включить внутреннюю отладку log4net?» путь вниз в самом низу. Log4net не будет генерировать исключения, если что-то не так, поэтому вы должны включить внутреннюю отладку, чтобы получать информацию из log4net.

http://logging.apache.org/log4net/release/faq.html

Изменить: также см. Вопрос, следующий непосредственно за ним, в котором объясняются возможные зависания при использовании EventLogAppender.

4
ответ дан 4 December 2019 в 12:17
поделиться

Я подозреваю, что защита доступа к коду мешает вам получить доступ к журналу событий. Эта статья содержит информацию по теме. Обычно, если ваше приложение ASP.Net работает со средним уровнем доверия, у приложения не будет доступа к журналам событий.

Примечание: это не ограничение, встроенное в log4net как таковое, это «особенность» .Net Framework и ASP.Net.

2
ответ дан 4 December 2019 в 12:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: